В общем смысле База данных реального времени Firebase может использоваться в автономном режиме. Однако ожидается, что приложение должно быть подключено большую часть времени, и изменения в базе данных, которые происходят во время автономной работы, будут синхронизированы при наличии возможности подключения. 100% автономное использование на самом деле не поддерживается, потому что каноническое хранилище данных находится на сервере.
Локальная копия базы данных ограничена (10 МБ, по крайней мере, на Android). Если вы намерены писать в базу данных за пределами этого ограничения в автономном режиме, она вытеснит часть ваших кэшированных данных, чтобы освободить место для того, что вы добавляете. Затем вы больше не сможете читать эти выселенные значения до тех пор, пока приложение не вернется в сеть. Хуже того, управление растущим списком записей для применения при обратном подключении к сети в Интернете, поэтому вы не хотите планировать много записей в автономном режиме.
Кроме того, если у вас есть разрешения или проверки, определенные для вашей базы данных, их можно проверить только на сервере. Итак, если вы выполняете автономную запись в свой локальный кеш, и у вас больше нет активного слушателя, вы можете никогда не узнать, не сработали ли эти записи.
Из-за этих оговорок лучше не думать о базе данных Firebase Realtime как о «автономной» базе данных. Лучше подумать об этом как о «синхронизированной» базе данных, которая активно синхронизируется с сервером при наличии возможности подключения.
Поскольку документы firebase не заявляют ничего другого, я бы предположил, что локальные файлы являются файлами базы данных простого текста. Любой, у кого есть root-доступ, может прочитать его и извлечь все данные. BTW: Если данные настолько чувствительны, вы уверены, что хотите сохранить их в открытом тексте на серверах Firebase? – Robert
Я зашифровал данные, но проблема в том, что мне нужно также хранить ключ для шифрования в базе данных. Разве это не побеждает цель? Что, возможно, лучший подход здесь? –