我使用的是Firebase Web SDK,但我遇到了重复监听器的问题。我尝试使用内部侦听器创建不同的对象,但有时当这些对象相等时,如果我删除一个侦听器,则同样删除另一个等于第二个对象的侦听器。
我认为因为可能只有一个侦听器用于不同的节点。但是在我的应用程序中,有时需要在不同时刻拥有与主动或非主动侦听器相同的对象。
是否有方法在同一节点中创建不同的侦听器?
我的代码就是添加一个监听器
firebase.database().ref(path).on('child_added', function (count) {})
这将删除一个监听器
firebase.database().ref(path).off()
如果我在同一节点中有不同的侦听器,则off函数会删除所有这些侦听器。我认为有用的方法来理解每个监听器的id
答案 0 :(得分:2)
在没有任何参数的情况下调用off()
会删除该位置的所有侦听器。
如果要分离特定的侦听器,则必须传入事件类型和回调:
var callback = function (count) {...};
firebase.database().ref(path).on('child_added', callback);
...
firebase.database().ref(path).off('child_added', callback);