Я попытался сохранить свойства моментальных снимков в массивах, но по какой-то причине, когда я храню данные внутри запроса, например, с on
или child_added
и запускать данные с помощью foreach
, данные отображаются внутри цикла и запроса , но из этого его значение не определено, я пытался с объектами, но только спаял последнее значение. Как решить эту проблему?Как сохранить моментальный снимок в массиве с Firebase и JavaScript?
Вот фрагмент кода:
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' является асинхронным, и его обратный вызов не срабатывает до тех пор, пока не будет вызван последний вызов' console.log' в вашем фрагменте. – cartant
Возможный дубликат [Обработка асинхронных вызовов (Firebase) в функциях] (http://stackoverflow.com/questions/11636731/handling-asynchronous-calls-firebase-in-functions) – cartant