Когда вы слушаете событие value
, вы каждый раз получаете снимок со всеми совпадающими данными.
Если вы хотите получать более детальные уведомления, вы можете прослушивать события child_*
. Например, чтобы услышать, когда состояние узла установлено равным единице, вы можете прослушать child_added
:
ref.orderByChild('status').equalTo('1').on("child_added", function(snapshot)
{
console.log(snapshot.key);
});
. Обратите внимание, что я также удаляю forEach
. Поскольку child_
события запускаются для каждого отдельного ребенка, вам больше не нужен l oop.
Если вам трудно определить, какое событие child_
слушать, я считаю, что проще всего думать запроса как «просмотр» данных. Когда статус дочернего узла установлен в 1, он входит в представление, поэтому он равен child_added
. Когда статус дочернего узла устанавливается в другое значение, он покидает представление, поэтому он будет запускать child_removed
.