2016-04-27 1 views
0

Ich möchte mehrere Elemente in einer einzigen Abfrage abrufen, die den Zustand zum Zeitpunkt der Abfrage darstellen, damit ich sie verarbeiten kann.Abfrage mehrerer Elemente als Snapshot mit Firebase

So Zuerst versuchte ich einmal() erste

ref.orderByChild("id").startAt(100).once("child_added", function(snapshot)) 

aber gerade den ersten Eintrag. Ich bekomme alle Ergebnisse, wenn Sie on() anstelle von once() verwenden, aber wie kann ich dann erkennen, dass alle ersten Ergebnisse an call off() gesendet wurden, um mit der Verarbeitung meiner Ergebnisse zu beginnen?

Ich dachte auch einmal ("Wert") zu verwenden, aber dann würde ich alle Elemente erhalten und müsste die Filterung auf der Client-Seite tun, so würde diese Lösung nicht wirklich skalieren.

Was würden Sie vorschlagen?

+0

Schnell zuerst unten Antwort. Sie suchen wahrscheinlich nach mehr, aber es ist schwer, das aus Ihrer Beschreibung herauszubekommen. Es würde wirklich helfen, wenn Sie Ihre Frage bearbeiten, um den minimalen ** vollständigen ** Code einzuschließen, der das Problem reproduziert. –

Antwort

0

Sie können alle Elemente erhalten die Abfrage mit einem value Zuhörer passend:

var query = ref.orderByChild("id").startAt(100); 
query.once("value", function(snapshot) { 
    snapshot.forEach(function(childSnapshot) { 
    console.log(childSnapshot.key(), childSnapshot.val()); 
    }); 
}) 
+0

Vielen Dank für Ihre schnelle Antwort und wenn mein Beispiel nicht erklärend genug war - genau das habe ich gesucht. Wie gesagt, ich experimentierte auch mit einem Wert-Listener, konnte es aber irgendwie nicht zum Laufen bringen! – magicwerk

+0

Wenn meine Antwort nützlich war, klicken Sie auf den Upvote-Button links davon. Wenn es Ihre Frage beantwortet hat, klicken Sie auf das Häkchen, um es zu akzeptieren. Auf diese Weise wissen andere, dass Ihnen (ausreichend) geholfen wurde. –