Ich habe ziemlich große Datenmengen, möglicherweise Millionen von Objekten und ich muss das child_added
-Ereignis auslösen und das letzte hinzugefügte Kind bekommen. Jedes Mal, wenn ich den Dienst starte, löst er das Ereignis einmal für jedes erste Kind im Datensatz aus.
Wie kann ich dieses Verhalten vermeiden?
bearbeiten:
Die vorgeschlagene Lösung löst das Problem nicht - es ignoriert es meiner Meinung nach. In meinem speziellen Fall speichere ich die eindeutige Referenz auf ein anderes Objekt als name
, und value
ist eine weitere wichtige Information. Die Priorität für den Datensatz wird auf die spezifische Nummer in meinem Fall-Zeitstempel gesetzt. Ich verwende dies, um den Datensatz zum Erstellen einer Zeitachse abzurufen, also brauche ich die Option, ein neues Objekt mit einem benutzerdefinierten Zeitstempel zu speichern - nicht nur aktuell. Der Listener .on()
für das Ereignis child_added
passt perfekt zu der Anforderung, außer dass alle untergeordneten Elemente beim Start abgerufen werden. Dies macht meiner Meinung nach diese Eigenschaft absolut sinnlos für jede große Sammlung.
Sie könnten limit(1)
verwenden. Dann feuert der Hörer einmal am Anfang und dann jedes Mal, wenn ein neues Kind hinzugefügt wird.
fireRef.limit(1).on('child_added', function() { /*code*/ });
Tags und Links firebase