2013-12-12 2 views
0

Я работаю над Android-приложением, которое синхронизирует все устройства, используя datastore api, предоставленные Dropbox. Он имеет набор метаданных, которые необходимо загрузить в Dropbox, когда пользователь впервые подключает свою учетную запись к приложению. Для следующего входа в систему с той же учетной записью Dropbox метаданные не нужно создавать снова (поскольку они уже присутствуют).Завершение завершения синхронизации в Dropbox datastore api

Для этого я делаю запрос, чтобы проверить, что метаданные уже присутствуют, прежде чем вставлять запись.

Проблема в том, что я получаю пустой результат по моему запросу, даже когда запись присутствует в таблице. Я вызываю метод sync() перед выполнением этой проверки, но, похоже, проверяет api с локальным хранилищем данных и подтверждает результат с пустым результатом.

Я не уверен, что это ожидалось, но одна из них может быть следующей: - Обеспечить синхронизированный завершенный обратный вызов/событие, чтобы приложение было уверенным, что загрузка/загрузка завершена. (или) - для запроса должен быть также способ проверить с сервером, чтобы увидеть, есть ли какие-либо существующие записи (хотя это не благоприятно для увеличения времени запроса).

Любые предложения приветствуются. Спасибо

ответ

1

«Синхронизация завершена» является проблематичным термином ... API-интерфейс Datastore постоянно синхронизируется. Вы можете использовать DbxDatastoreStatus, чтобы узнать, есть ли какие-либо известные изменения в настоящее время в полете. Когда вы сначала связываете учетную запись, поле isDownloading должно быть истинным, поэтому вы можете использовать его для ввода «первой синхронизации».

Что касается вашего использования при добавлении исходных данных, вы можете вместо этого использовать getOrInsert с известным идентификатором (например, «метаданные»). Таким образом, даже если запись создана на нескольких устройствах, вы по-прежнему будете иметь только одну запись.

+0

Я использовал getOrInsert для своей цели. Отлично работает. Благодарю. – Satya

Смежные вопросы