База данных Firebase в реальном времени: как остановить автономную запись? (Лучший подход) - PullRequest
0 голосов
/ 08 апреля 2019

В настоящее время, чтобы предотвратить запись в Firebase после возвращения из автономного режима, я проверяю подключение к Интернету перед каждой операцией записи. И под этим я имею в виду не просто проверку подключения к сети, но также наличие реального доступа в Интернет. Я пингую google.com, чтобы узнать.

Я не думаю, что это лучший способ сделать это.

Итак, какова лучшая практика - просто указывать Firebase не кэшировать какие-либо операции записи, когда нет доступного подключения к Интернету, и просто просматривать простое простое сообщение «Нет доступного подключения к Интернету»?

Ответы [ 2 ]

3 голосов
/ 08 апреля 2019

Если вам действительно необходимо сделать приложение непригодным для использования, когда устройство пользователя даже временно теряет связь, вам нужно добавить прослушиватель в специальном месте, называемом /.info/connected. Он сообщит вам, когда SDK решит, что он потерял соединение. Это описано в документации . Вам нужно будет написать код, чтобы заставить ваше приложение вести себя так, как вы хотите, когда ваш слушатель получает уведомление, подобное этому.

Однако ваше приложение может все еще записывать данные в течение времени, которое потребовалось с момента остановки соединения до того, как SDK примет решение о том, что соединение фактически разорвано. И эти записи все равно будут синхронизированы.

Лучше просто сделать приложение пригодным для использования в автономном режиме и уведомлять пользователя, когда его данные еще не синхронизированы из-за отсутствия связи.

2 голосов
/ 08 апреля 2019

Итак, что лучше всего указывать Firebase не кэшировать какие-либо операции записи, когда нет подключения к Интернету

Вы не можете запретить Firebase добавлять операцию записи в очередь в автономном режиме. Это одна из важнейших функций базы данных Firebase в реальном времени. Таким образом, приложения Firebase также будут работать, даже если ваше приложение временно теряет свое сетевое соединение. В этом вся прелесть этой базы данных.

По умолчанию автономное сохранение отключено. Если вы включили постоянство, то самый простой способ отключить его - использовать следующую строку кода:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Таким образом, вы сообщаете Firebase, что вам вообще не нужны никакие кэшированные данные, поэтому не будет никаких ожидающих операций записи, но, к сожалению, вы можете запретить кэширование данных только в автономном режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...