Как увидеть в приложении iPhone, что Документ Google изменился? - PullRequest
1 голос
/ 02 ноября 2010

Я новичок в приложениях для iPhone и GData API. Я хочу использовать Google Documents как хранилище данных для своего многопользовательского приложения, необходимо контролировать права доступа к данным:

Если первый пользователь берет данные, то он может читать и записывать их, все остальные пользователи смогут только читать. Но когда первый пользователь заканчивает свою работу с данными и выходит из приложения, я хочу, чтобы второй пользователь получил права на запись.

Помогите мне, пожалуйста, найти способ решить эту проблему.

Моя идея такова: мне нужно иметь два файла: файл «ApplicationData», где будут храниться мои данные, и файл «DataInfo», где имена пользователей, которые работают с данными, будут храниться в правильной последовательности. Когда первый пользователь выходит, он удаляет первую строку со своим именем в «DataInfo». А все остальные пользователи, имеющие только права на чтение, должны каждую минуту (например) загружать «DataInfo» и проверять, изменилась ли ситуация. Но я очень сомневаюсь, это хороший способ решить мою проблему. Я не думаю, что такое количество пользователей может загружать один и тот же файл так часто.

Есть идеи?

1 Ответ

0 голосов
/ 07 ноября 2010

Блокировка других пользователей, вероятно, не будет работать надежно, так как приложение почти наверняка не сможет "разблокировать" документ, если он неожиданно был закрыт.

Пока загруженные обновления в Документах Google имеют правильный атрибут ETag (gd: etag) в записи документа, клиентское приложение, пытающееся обновить документ, получит ошибку, указывающую, что документ на сервере изменился. Затем клиентское приложение должно загрузить версию с сервера и согласовать различия, если таковые имеются.

Если разные пользователи пытаются редактировать один и тот же документ, вам, вероятно, потребуется установить соответствующие записи списка контроля доступа для документа, чтобы документ был доступен для всех пользователей.

Хотя Google Docs предназначен для одновременной совместной работы нескольких пользователей в режиме реального времени, Docs API - нет. В условиях, когда несколько пользователей активно пытаются работать с одним и тем же документом, вам, вероятно, потребуется создать собственный сервер, чтобы иметь надежное решение.

...