2015-07-10 2 views
1

Я хотел бы перенести свое приложение с помощью локального SQLite в Parse.От SQLite до Parse.com

Я предполагаю, что лучший способ начать работу - создать механизм переноса, который передает текущие пользовательские данные из базы данных SQLite в Parse. Есть ли какие-либо встроенные механизмы для этого?

Что-то еще я не уверен: поскольку мы хотели бы, чтобы приложение функционировало для пользователей, которые решили создать учетную запись, и для пользователей, которые не хотят (а также при отсутствии сетевого подключения), имеет смысл (а) включить локальное хранилище данных и (б) сделать все сохраненные вызовы для сохранения? Из того, что я могу сказать, прочитав документы, saveEventually сохранит (выталкивает) данные в локальном хранилище данных, пока не будет сохранено на сервере.

Другой вопрос: если пользователь начинает использовать приложение офлайн (выбирает, чтобы не делать учетную запись), но позже решает подписаться, возможно ли связать все предыдущие данные, созданные при работе в автономном режиме, с их новой учетной записью? Например, скажем, Joe загружает приложение и предпочитает не подписывать, а приложение отключается в течение 6 месяцев. Затем Джо понимает, что ему нужно получить новое устройство, чтобы он решил подписаться, чтобы сохранить свои данные. Когда он подписывается, данные, которые он создал за этот 6-месячный период, теперь связаны с его новой учетной записью?

Любая обратная связь будет очень признательна.

ответ

0

Спрашивая этот вопрос, мы разработали план. Любая обратная связь будет высоко оценена.

Мы планируем сделать следующее: (а) перенести наш sqlite db в локальное хранилище данных синтаксического анализа (pin). Мы не будем использовать saveEventually, но вместо этого будем использовать pinInBackground:, привязывая все объекты к определенной группе и устанавливая флаг isDraft (или что-то подобное) на true. Затем этот флаг позволяет нам получить доступ к тем объектам, которые еще нужно синхронизировать с parse.com. Затем, когда приложение закрыто, мы запускаем фоновую задачу в приложении, вытаскивая эти закрепленные объекты из этой группы, которые все еще черновики, устанавливая флаг isDraft на false, а затем отправляя их на parse.com. Если возникает ошибка при их сохранении, сбросьте флаг isDraft в true, чтобы при следующей попытке синхронизации мы снова попытались с этим объектом.

Мы получили эту миграцию из todos tutorial, предоставленной parse.com. Я считаю, что это сработает. Единственное, что меня беспокоит, это то, что у нас более 15 тыс. Пользователей. Если все они попытаются сделать это в то же время, я уверен, что мы поражаем потолок запросов api (пользователи 15 тыс. * Где-то между объектами размером от 100 до 1000 дБ). Однако это может не быть большой проблемой, поскольку мы будем полагаться на локально закрепленные объекты на клиенте, чтобы заполнить клиент, а когда клиент получит уведомление об ошибке избыточного значения, он будет терпеть неудачу, а флаг isDraft будет сброшен на true, чтобы при следующем подключении объекты с ошибкой снова проверялись.

У кого-нибудь есть лучшее решение? Или улучшения этого? Я не смог найти много информации об этом процессе, но я уверен, что другим может быть интересно об этом. Мы не можем быть единственными, кто пытается сделать это.

+0

Если кто-то не может обеспечить лучший подход, я собираюсь отметить свой ответ как правильный. не стесняйтесь добавлять дополнительную информацию или предлагать лучшее решение. – Warblr

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