2016-09-08 5 views
1

Ich verwende das Firebase Web SDK und habe ein Problem mit der Duplizierung von Listenern. Ich habe versucht, verschiedene Objekte mit internen Listenern zu erstellen, aber manchmal, wenn diese Objekte gleich sind, und wenn ich einen Listener entferne, wird auch der andere Listener, der dem zweiten Objekt entspricht, entfernt.Firebase - verschiedene Listener im selben Knoten

Ich denke, weil es möglich ist, nur einen Listener für verschiedene Knoten zu haben. Aber in meiner App ist es manchmal notwendig, gleiche Objekte mit aktiven oder inaktiven Listenern in verschiedenen Momenten zu haben.

Gibt es eine Methode, um verschiedene Listener im selben Knoten zu erstellen?

mein Code ist dies ein Zuhörer

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

hinzuzufügen und diese ein Zuhörer

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

zu entfernen, wenn ich differents Zuhörer haben in demselben Knoten die Aus-Funktion alle diese Hörer entfernen. Ich denke, dass eine Methode nützlich ist, um die ID jedes Zuhörers zu verstehen

+0

es auf jeden Fall möglich ist, mehrere verschiedene Zuhörer auf einem einzelnen Knoten zu haben. Sie haben vergessen, den [minimalen Code, der das Problem reproduziert] (http://stackoverflow.com/help/mcve) einzuschließen. Ohne das ist es schwer etwas zu sagen. –

+0

Entschuldigung, ich füge einen Code hinzu. – DThink

Antwort

1

Aufruf off() ohne Parameter wie Sie werden alle Listener an diesem Speicherort entfernen.

Wenn Sie einen bestimmten Hörer trennen möchten, müssen Sie in den Ereignistyp passieren und den Rückruf:

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

... 

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

danke frank. genau das, was ich wissen wollte – DThink

Verwandte Themen