Кажется, вы нигде не настраиваете постоянство. keepSynced только устанавливает слушателя. Вам нужно сделать что-то вроде:
FirebaseDatabase database;
database = FirebaseDatabase.instance;
bool success = database.setPersistenceEnabled(true);
Вызов setPersistenceEnabled возвращает логическое значение true, если постоянство было установлено.
Вам необходимо установить постоянство перед вызовом вашей первой ссылки.
Обновление:
Чтобы использовать Firebase в автономном режиме, вы включаете постоянство с помощью setPersistenceEnabled (true) при запуске приложения. После того, как вы сделали какие-либо вызовы из базы данных, вы не можете отключить его снова ie. использование setPersistenceEnabled (false) не имеет эффекта.
Ваши существующие слушатели будут гарантировать, что данные, на которые они ссылаются, будут синхронизированы c. Если у вас есть узлы базы данных, для которых не определены прослушиватели, и которые вы хотите синхронизировать c ie. храните данные fre sh, затем вы используете keepSynced для создания прослушивателя для них. Вы можете включить или выключить этот слушатель, используя keepSynced (true) и keepSynced (false). Если вы не сохраняете данные определенного узла c fre sh, то возможно, что приложение будет использовать более старые значения из постоянных данных на устройстве, поскольку оно обычно сначала их считывает. Однако будьте осторожны, когда вы используете keepSynced, иначе вы можете загружать слишком много данных.
См .: https://firebase.google.com/docs/database/android/offline-capabilities для получения всей информации.