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