Будет ли Firebase читать из кэшированных данных, если я отключил setPersistenceEnabled в моем обновлении приложения (Android) - PullRequest
0 голосов
/ 03 мая 2018

Сценарий

Я выпустил свое приложение в магазине игр, в котором используется

  1. База данных Firebase в реальном времени
  2. Установил setPersistenceEnabled (true) для каждой моей базы данных Firebase.

После отслеживания сбоев в течение нескольких недель я столкнулся с этим сбоем.

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

Итак, я отключил сохранение данных, позвонив FirebaseDatabase.getInstance().setPersistenceEnabled(false); для всех моих баз данных.

С учетом вышеуказанных изменений в коде я выпустил обновление для своего приложения в Play Store.

Но пользователи (в новой версии с отключенным постоянством) все еще получают сбой.

Так что мои запросы

1) Будет ли приложение использовать постоянные данные даже после отключения сохранения?

2) Нужно ли пользователю очищать данные приложения, что устранит сбой? (поскольку причиной сбоя являются непоследовательные / поврежденные кэшированные данные)

ниже приведены зависимости gradle в моем приложении, связанные с базой данных firebase

compile 'com.google.firebase:firebase-database:12.0.1'
compile 'com.firebaseui:firebase-ui-database:3.3.0'

1 Ответ

0 голосов
/ 03 мая 2018

Будет ли Firebase читать из кэшированных данных, если я выключил setPersistenceEnabled?

Ответ - нет. После того, как вы используете следующую строку кода:

FirebaseDatabase.getInstance().setPersistenceEnabled(false);

Это означает, что вы не сможете запрашивать базу данных, когда находитесь в автономном режиме. Эта функция будет отключена. Чтобы быть более понятным, каждый клиент, который использует базу данных Firebase и использует setPersistenceEnabled (false), будет не поддерживать свою собственную внутреннюю (локальную) версию базы данных.

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

...