Android синхронизировать sqlite с Parse.com
Привет, ребята, мне нужна ваша помощь, чтобы решить эту проблему, которая у меня есть. Какой-то парень сказал мне, что синхронизация sqlite (локальная БД в моем устройстве Android) может синхронизироваться с БД parse.com, как это возможно = я имею в виду, если необходимо скопировать всю мою БД из Parse.com и вставить в мою локальную БД sqlite но я уверен, что это не лучший способ.
Например, если я изменю некоторые данные из базы данных parse.com, это изменение автоматически обновит базу данных sqlite моего устройства при наличии подключения к Интернету. ¿Каков наилучший способ синхронизировать это? Пожалуйста, если вы можете дать мне несколько примеров, советов и т. д. Я буду признателен. Привет
2 ответа
Я знаю, что вопрос устарел, но я хотел бы поделиться своим решением этой проблемы.
Я создал простую и удобную библиотеку, которая позволяет синхронизировать данные между локальной базой данных SQLite и Parse.com. Вот его репозиторий GitHub: ParseDataSync для Android
Синхронизация опирается на syncId
, syncDate
поля и deleted
флаг, предложенный в обсуждении на parse.com. Поскольку он зависит от даты, он не будет работать, если время на устройстве неверно (или отличается от сервера parse.com). Таким образом, вы должны разрешить такую ситуацию самостоятельно.
Библиотека предоставляет аннотации для сопоставления ваших классов сущностей OrmLite с классами Parse. В настоящее время это предварительный просмотр, но я планирую сделать его более стабильным и функциональным.
Оставьте комментарий или создайте проблему на GitHub. Буду очень признателен за ваш отзыв.
Этот вопрос задавался на форумах в Parse.
Конечный результат: все дело в том, чтобы делать это вручную.
Исходя из моего опыта синхронизации, я бы посоветовал вам обрабатывать вставки, затем обновления, затем удалять, искать конфликты и отслеживать что-то, чтобы узнать, где вы находитесь (дата / время работает, но есть проблемы).
Обработка удалений на клиенте и сервере будет означать либо мягкое удаление (логический флаг IsDeleted), либо наличие таблицы захоронения, либо какой-либо другой способ их отслеживания. Для сервера вы можете добавить Cloud Code, который запускается на / перед удалением. На стороне клиента вам нужно будет изменить код, который может выполнить удаление в локальной базе данных.
Выполнение сначала на сервере, либо на клиенте будет зависеть от того, какие конфликты вы ожидаете и как вы хотите их разрешать.