Firebase nodejs admin SDK загружает данные каждый раз при извлечении данных из пути к базе данных в реальном времени - PullRequest
0 голосов
/ 16 сентября 2018

Я использую Firebase Admin SDK на моем сервере nodejs. Если я загружаю данные определенного пути к базе данных в реальном времени несколько раз, можно заметить, что SDK загружает данные этого пути каждый раз.

firebaseAdmin.database().ref('some/path').on('value', snapshot => {

});

Если я использую профилировщик firebase, очевидно, что SDK загружает данные каждый раз, поскольку профилировщик показывает использование данных каждый раз, когда выполняется вышеуказанный код.

Есть ли способ включить сохранение данных базы данных в реальном времени в SDK администратора, чтобы SDK загружал дельту только в том случае, если произошло изменение этого пути?

1 Ответ

0 голосов
/ 16 сентября 2018

Клиенты базы данных Firebase для Android и iOS имеют два типа кэша:

  1. кэш в памяти всех данных, к которым у вас в данный момент имеются активные прослушиватели. Этот кэш также предотвращает необходимость повторной загрузки данных для местоположения, которое уже находится в памяти.
  2. (необязательно) постоянство на диске , в котором хранятся последние загруженные данные. Когда прослушиватель подключается к местоположению, которое находится в дисковом кэше, исходные данные загружаются с диска в память, после чего с сервера запрашивается только дельта.

В Firebase Admin SDK для Node.js не реализовано сохранение диска . Он будет загружать все данные из местоположения каждый раз, когда вы присоединяете слушателя к местоположению, которого у него еще нет в памяти.

Я думал, что раньше видел этот запрос на репозитории github , но сейчас не могу. Возможно, стоит подать запрос на добавление функции туда или с командой поддержки Firebase .

Дополнительную информацию о сохраняемости диска в базе данных Firebase Realtime смотрите:

...