В некоторых местах я обнаружил, что гнездовал слушателей базы данных Firebase. Например, у меня есть список foos
, каждый со списком bars
, и я хочу сделать что-то, когда новый bar
добавляется к любому foo
:Очистить обработчик событий Firebase внутри `child_added`?
firebase.database().ref('foos').on('child_added', function(fooSnap) {
fooSnap.ref.child('bars').on('child_added', function(barSnap) {
// do something with the new bar
});
});
Есть ли лучший способ сделать это?
А если foo
удаляется, что вложенная bar
child_added
слушателем очищены, или я должен называть .off(...)
в child_removed
слушателя где-нибудь? Как я могу это сделать?
Не содержит ли 'fooSnap.val()' всех дочерних элементов/дочерних элементов нового узла? т. е. можно ли использовать синхронный цикл внутри? – qxz
Это сработает, если я захочу что-то сделать с существующими барами, но я хочу постоянно делать вещи в барах, когда они добавляются. Подумайте о сервере уведомлений или индексировании поиска. – nicholas