0
私はスナップショットのプロパティを配列に保存しようとしましたが、何らかの理由でクエリ内にデータを格納すると、たとえば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