RNFirebase 'keepSynced' не работает должным образом - PullRequest
0 голосов
/ 04 августа 2020

Мы используем react-native-firebase в одном из наших приложений, в котором у нас есть более одной ссылки (reference_A, reference_B, reference_ C) на одном уровне, и мы хотим ограничить одну из этих ссылок (reference_ C) от синхронизации с базой данных Firebase Real-time, но не с другими.

Для этого, как указано в Документация Firebase и Документация RNFirebase , мы использовали метод keepSynced, как показано ниже:

import database from '@react-native-firebase/database';
..
..
..
database().ref('/reference_C').keepSynced(false);

Кроме того, для сохранения данных для автономного использования мы использовали setPersistenceEnabled, как показано ниже:

database().setPersistenceEnabled(true);

Но, при просмотре на консоли Firebase "reference_ C" синхронизируется, когда устройство подключается к сети, что не соответствует ожиданиям.

Любая помощь с этим приветствуется.

Спасибо заранее.

1 Ответ

0 голосов
/ 04 августа 2020

keepSynced работает не так, как вы ожидаете. Невозможно полностью остановить синхронизацию определенного узла. Вы используете keepSynced, чтобы указать, что вы всегда хотите синхронизировать узел с указанием c. По сути, это то же самое, что и добавление пустого слушателя к узлу, чтобы изменения в базе данных синхронизировались с клиентом.

Если вы видите, что reference_C синхронизируется, это означает, что вы добавили слушателя к нему где-то еще в вашем коде, или у вас есть слушатель на узле root базы данных, который эффективно все время синхронизирует.

...