Из этого потока: https://groups.google.com/forum/#! Msg / firebase-talk / ptTtEyBDKls / XbNKD_K8CQAJ
Поведение для addListenerForSingleValueEvent: Если мы кэшировали данные: вызовите событие с тем, что мы кэшировали (это может быть устаревшим). Отправьте запрос на сервер для получения последних данных. Это означает, что вы можете получить устаревшие данные в вашем обратном вызове события. Вы должны получить более свежие данные при следующем вызове addListenerForSingleValueEvent (поскольку мы попытались обновить кэш).
Мы знаем, что это не идеальное поведение, и ищем способы улучшить его. На данный момент использование keepSynced () является хорошим подходом, чтобы убедиться, что он максимально возможный sh.
Так ли это до сих пор в 2020 году? Я обнаружил, что зависимость от слушателя (по крайней мере, ChildEventListener) не была надежной, когда приложение переходит в фоновый режим или устройство переходит в спящий режим - поэтому я не могу просто полагаться на keepSynced (true).
В моем собственном тестировании использования addListenerForSingleValueEvent это, кажется, работает последовательно, но я должен быть уверен в этом на 100% от имени моих пользователей. Я нашел этот поток, который описывает обходной путь с использованием объекта Query: { ссылка }
Требуется ли этот обходной путь в 2020 г.? Спасибо.