Firebase - 同一节点中的不同侦听器

时间:2016-09-08 09:50:26

标签: javascript firebase firebase-realtime-database

我使用的是Firebase Web SDK,但我遇到了重复监听器的问题。我尝试使用内部侦听器创建不同的对象,但有时当这些对象相等时,如果我删除一个侦听器,则同样删除另一个等于第二个对象的侦听器。

我认为因为可能只有一个侦听器用于不同的节点。但是在我的应用程序中,有时需要在不同时刻拥有与主动或非主动侦听器相同的对象。

是否有方法在同一节点中创建不同的侦听器?

我的代码就是添加一个监听器

firebase.database().ref(path).on('child_added', function (count) {})

这将删除一个监听器

firebase.database().ref(path).off()

如果我在同一节点中有不同的侦听器,则off函数会删除所有这些侦听器。我认为有用的方法来理解每个监听器的id

1 个答案:

答案 0 :(得分:2)

在没有任何参数的情况下调用off()会删除该位置的所有侦听器。

如果要分离特定的侦听器,则必须传入事件类型和回调:

var callback = function (count) {...};
firebase.database().ref(path).on('child_added', callback);

...

firebase.database().ref(path).off('child_added', callback);