Подтвердить что ты не робот

Firebase Offline Storage Advanced - ручная синхронизация и информация о ходе работы

У меня есть приложение, где основной функцией является "Автономное использование".

Мы создаем SQLite-Database на нашем сервере, что мы предоставляем в API для загрузки. Каждый раз, когда база данных изменилась, пользователям пришлось повторно загрузить полную базу данных SQLite (которая в настоящее время составляет 50 МБ и растет во времени).

Мы попытались улучшить Update-Method, который должен был загружать только файлы Difference-SQL, но есть некоторые проблемы (производительность, коррумпированные базы данных и т.д.).

Теперь выпущенная Firebase для Google, и я думаю, что пришло время заменить SQLite-System системой Firebase.

Но у меня есть некоторые мысли:

  • Можно ли загрузить всю базу данных Firebase для автономного использования (не в кэше приложений в постоянном хранилище)?
  • Можно ли отслеживать ход автономной синхронизации и предоставить пользователю параметр, если он хочет синхронизировать сейчас или позже?
  • Можно ли ограничить синхронизацию только WIFI?
  • Могу ли я предоставить базу данных Bundle - что после установки приложения я уже могу запросить данные офлайн-Firebase?

Я хочу: использование Firebase в моем приложении только для синхронизации баз данных - НО ВСЕ все операции отключены. Если Firebase не предназначен для использования, какая хорошая альтернатива?

Тогда у меня есть еще один главный вопрос относительно Firebase:

  • JSON Storage - это здорово - но таким образом нам не нужна уникальная структура, мы должны обратить внимание на это, чтобы вставить всегда правильные наборы данных?
4b9b3361

Ответ 1

Можно ли загрузить всю базу данных Firebase для автономного использования (не в App-Cache, в постоянном хранилище)?

Да, вы можете сделать это, установив жесткость диска на true. Вам просто нужно ссылаться на самый высокий уровень в базе данных, и firebase вернет все дочерние узлы. https://firebase.google.com/docs/database/android/offline-capabilities

Могу ли я отслеживать ход автономной синхронизации и предоставлять пользователю если он хочет синхронизировать сейчас или позже?

Я никогда не пытался показать фактический прогресс, однако, когда вы извлекаете данные из firebase, всегда существует метод onDataChange, который вызывается, когда вы успешно извлекаете данные. https://firebase.google.com/docs/database/android/retrieve-data#read_data_once

Могу ли я ограничить синхронизацию только WIFI?

Я не видел этот вариант в документации Firebase, однако я не считаю, что было бы очень сложно реализовать

Можно ли доставить базу данных Bundle - после установки приложения я могу уже запрашивать данные офлайн-Firebase?

Вам нужно будет захватить данные из Firebase, как только будет установлено приложение. Вы также можете теоретически, когда приложение запускается сначала, попробуйте записать в базу данных Firebase без какой-либо сети, а затем эти данные могут быть доступны локально, однако вам нужно быть осторожным, как когда пользователь получает сетевое соединение, тогда эти данные могут быть перезаписаны данные в базе данных Firebase. Как кэшировать данные Firebase для автономного использования?