В Firestore уже есть постоянный слой, вам вообще не нужна комната. Вы можете включить поддержку в автономном режиме, как это:
val settings = FirebaseFirestoreSettings.Builder()
.setPersistenceEnabled(true)
.build()
db.firestoreSettings = settings
Использование Firestore для персистентности имеет много преимуществ по сравнению с Room (кроме сэкономленных усилий и потенциальных ошибок). Если вы, например, загрузить все рестораны в городе, затем отключиться и запустить запрос, например, на. В лучших ресторанах запрос все равно будет работать и использовать кэшированные данные, даже если запрос никогда не выполнялся, когда он был в сети.
Вы также можете настроить размер кэша, который Firestore использует для удовлетворения ваших потребностей. Документы кэшируются в режиме LRU, поэтому документы, которые не использовались дольше всего, сначала удаляются из кэша после его заполнения.
Лучше всего всегда использовать прослушиватели моментальных снимков. Если вы запустите запрос в автономном режиме и устройство вернется в оперативный режим, Firestore автоматически снова запустит запрос на сервере и вернет обновленный результат в ваш пользовательский интерфейс.
Посмотрите документы и это видео о автономном режиме Firestore для получения более подробной информации.