Есть ли какие-либо события "жизненного цикла" для базы данных Firebase Realtime? - PullRequest
0 голосов
/ 09 сентября 2018

При работе с Firebase (база данных в реальном времени) я хотел бы знать следующее об объектах в базе данных:

  • Существует ли объект по пути
  • Когда объект создается по пути
  • Когда объект уничтожен на пути

Я могу выяснить некоторые хаки для них. Например:

  • Подпишитесь на on('value') события и загружайте весь (часто огромный) объект.
  • Создайте отдельное значение «флага» для каждого объекта в базе данных, которое изменяется при создании и уничтожении объектов.
  • Прослушивание 'child_added', 'child_removed' и т. Д. В определенном поле внутри объекта, у которого такое же время жизни, как у объекта.

Они выполняют работу при определенных обстоятельствах, но довольно произвольны и плохо масштабируются.

Есть ли способ достичь вышесказанного без необходимости загружать весь объект или создавать кучу «учетных» записей в базе данных?

Ответы [ 2 ]

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

Если предположить, что веб-SDK (в перспективе браузера), обновления в реальном времени (.on) являются правильным способом получения данных такого типа. Данные не должны быть большими - они называются «База данных реального времени», поскольку они не предназначены для хранения больших типов файлов, таких как изображения и видео.

Прослушивание событий значения

var starCountRef = firebase.database().ref('posts/' + postId + '/starCount');
starCountRef.on('value', function(snapshot) {
  updateStarCount(postElement, snapshot.val());
});
0 голосов
/ 10 сентября 2018

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

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