Существует огромная разница между этими двумя типами баз данных. Постоянная библиотека Room предоставляет уровень абстракции поверх SQLite, чтобы обеспечить более надежный доступ к базе данных, в то время как Cloud Firestore - это гибкая, масштабируемая база данных в реальном времени для разработки на мобильных устройствах, в Интернете и на серверах.
Firestore не предназначен для использования в качестве автономной базы данных только , поскольку вы можете использовать Room, он действительно разработан как онлайновая база данных в реальном времени, которая может работать в течение коротких или промежуточных периодов отключения. Cloud Firestore использует SQLite для своего механизма сохранения. Поэтому, если вы говорите, что ваши пользователи будут в основном онлайн, у вас не должно быть проблем с производительностью или долговечностью.
Данные внутри не будут меняться очень часто, и когда они это делают, они текут только в одну сторону:
Если в какой-то момент вы решите изменить этот поток, имейте в виду, что когда устройство пользователя отключается, ожидающие записи, которые еще не были синхронизированы с сервером, удерживаются в очереди. Если вы выполняете слишком много операций записи, не выходя в интернет для их синхронизации, эта очередь будет быстро расти и не будет замедлять только операции записи, а также будет замедлять ваши операции чтения.
Так что, если вы планируете использовать автономную персистентную функцию Cloud Firestore , обратите внимание, что она на самом деле включена по умолчанию на Android и iOS, поэтому вам ничего не нужно делать.
И чтобы ответить на ваш первоначальный вопрос:
В чем преимущество Android Room перед Cloud Firestore для постоянного локального хранилища?
Я уже говорил, что обе базы данных разные и используются для разных целей, но для вашего варианта использования (учитывая использование в разумных пределах) вам поможет с этим кэшированная копия вашей базы данных Firestore.