app.get('/zones/:id/experiences', function(req,res) {
var zone_key = req.params.id;
var recent = [];
var ref = firebase.database().ref('participants/'+zone_key+'/experiences');
ref.on("value", function(snapshot) {
snapshot.forEach((snap) => {
firebase.database().ref('experiences').child(snap.val()).once("value").then((usersnap) => {
recent.push(usersnap.val());
});
});
console.log(recent);
});
res.render('experiences',{key: zone_key, list: recent});
});
在上面的代碼,我查詢的參考點來獲得的一組「鑰匙」的。然後對於每個鍵,我正在查詢另一個參考點以獲取與該鍵關聯的對象。然後,對於爲這些鍵返回的每個對象,我只是想將對象推送到列表中。然後,我想將這個列表傳遞給客戶端站點,以使用渲染來處理數據。
由於某種原因,recent []
永遠不會被填充。它仍然是空的。這是我的變量不在範圍內的問題嗎?我控制檯登錄來檢查參考點正在返回的數據以及它的所有好處,我得到我想要的數據。
P.S嵌套這樣的查詢好嗎?在另一個查詢中循環
傳遞給'on'的回調是異步調用的:https://stackoverflow.com/q/14220321/6680611 – cartant