2016-09-08 5 views
1

Firebase Web SDKを使用していますが、リスナーの重複に問題があります。内部のリスナーで異なるオブジェクトを作成しようとしましたが、これらのオブジェクトが等しい場合や、1つのリスナーを削除すると、2つ目のオブジェクトと等しい他のリスナーも削除されます。Firebase - 同じノードの異なるリスナー

異なるノードに対して1つのリスナーしか持たないと思います。しかし、私のアプリでは、時々、アクティブな、またはアクティブでないリスナーと同じオブジェクトを別の瞬間に持つ必要があります。

同じノードに異なるリスナーを作成する方法はありますか?

私のコードは、私が同じノードに貴様のリスナーを持っている場合は、オフ機能は、このすべてのリスナーを削除し、リスナー

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

を削除するには、リスナー

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

と、これを追加するには、このです。私は、各リスナーのidを理解するのに便利な方法だと思う。

+0

単一のノード上の複数の異なるリスナーを持つことは間違いなく可能です。あなたは[問題を再現する最小限のコード](http://stackoverflow.com/help/mcve)を含めるのを忘れていました。それがなければ何も言い難い。 –

+0

申し訳ありませんコードを追加します。 thanks frank。 – DThink

答えて

1

off()を呼び出すと、その場所のすべてのリスナーが削除されます。

あなたが特定のリスナーをデタッチする場合は、イベントタイプとコールバックを渡す必要があります:

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

... 

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

ちょうど私が知りたいと思ったもの – DThink

関連する問題