Ich habe versucht, Snapshot-Eigenschaften in Arrays zu speichern, aber aus irgendeinem Grund, wenn ich die Daten in der Abfrage beispielsweise mit on
oder child_added
speichern und die Daten mit einem foreach
ausführen, werden die Daten innerhalb der Schleife und der Abfrage angezeigt , aber aus diesem ist sein Wert undefiniert, ich habe mit Objekten versucht, aber nur den letzten Wert gerettet. Wie konnte dieses Problem gelöst werden?So speichern Sie einen Snapshot in einem Array mit Firebase und JavaScript?
Hier ist ein Codefragment:
var array=[];
var ref= firebase.database().ref().child('messages');
ref.orderByChild("fecha").on('value',function(snapshot){
snapshot.forEach(function(snap){
//test array
array[0] = snap.val().text;
console.log(array[0]);//show the data
});
});
//but out of the loop
console.log(array[0]);//Return undefined
"on" ist asynchron und sein Callback wird erst nach dem letzten Aufruf von "console.log" in Ihrem Snippet ausgelöst. – cartant
Mögliches Duplikat von [Behandlung asynchroner Aufrufe (Firebase) in Funktionen] (http://stackoverflow.com/questions/11636731/handling-asynchronous-calls-firebase-in-functions) – cartant