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