Приложение для Android, которое я сейчас разрабатываю, в основном будет работать в автономном режиме. Однако, находясь в сети, пользователи могут подключиться к БД для загрузки необходимых данных. Кроме того, они могут управлять данными в автономном режиме, поэтому они могут удалять данные, которые не хотят использовать. Пользователи не могут изменять онлайн-базу данных. Я использую Firebase с включенной функцией Persistence, чтобы сохранить дату для использования в Интернете. Моя проблема в том, что я просто не могу правильно управлять данными.
Поскольку firebase загружает всю базу данных: Есть ли способ выбрать, какие запросы я хочу загрузить из firebase? Если нет, могу ли я удалить те запросы, которые не хочу использовать, из локального контента?
Похоже, вам не нужна функция синхронизации базы данных firebase.
However while online, the users can connect to the DB to download the data they need. Furthermore they are able to manage the data offline, so they can remove the data they don't want to use. The users cannot modify the online database.
установите для этой таблицы в правилах значение false, и изменение будет невозможно, так как вы включили постоянство диска, firebase будет читать новые обновления, но не будет записывать изменения пользователя. Также он может отменить существующие изменения пользователя (которые пользователь удалил) во время синхронизации и поместить новые из облака, так что вы можете (поскольку я никогда не пробовал это) в конечном итоге выполнит синхронизацию самостоятельно, пожалуйста, поищите и прочтите это.
Since firebase downloads the whole database: Is there a way to choose, which queries I want to download form firebase? If not, can I delete those queries I don't want to use, from local content?
Вам нужно будет выключите синхронизацию на каждом из ваших столов, как показано ниже
DatabaseReference dbRef=FirebaseDatabase.getInstance().getReference("table-name");
dbRef.keepSynced(false);
Обратитесь сюда, в документы. Я думаю, что это нужно делать на каждом узле, поскольку нет способа отключить его для всей базы данных firebase в реальном времени, кроме как отключить постоянство диска, которое вы хотите в вашем случае.
ИМХО похоже, что вы используете firebase как место для хранения ваших данных в облаке, в случае, если функция синхронизации отменяет ваши локальные изменения для синхронизации онлайн, вам следует подумать об использовании SQL-lite DB с Room ORM, поскольку он будет служить вашей цели, просто извлекая данные и изменяя их локально, однако компромисс здесь заключается в том, что вам придется поддерживать данные надлежащим образом, чтобы запрашивать новые изменения или видеть, есть ли какие-либо обновления / удаления для каких-либо из старых записей.
Хорошая идея, я собираюсь использовать SQL-lite для хранения данных на моем устройстве. Чтобы предотвратить бесполезный синтаксический анализ, я буду использовать gson для создания строк json и сохранения их в базе данных.