Javascript 在firebase中选择内部循环?
我知道在mysql中,我们需要避免选择内部循环 我需要从firebase、从2个“表”中获取数据,我可以这样做:Javascript 在firebase中选择内部循环?,javascript,reactjs,firebase,firebase-realtime-database,nosql,Javascript,Reactjs,Firebase,Firebase Realtime Database,Nosql,我知道在mysql中,我们需要避免选择内部循环 我需要从firebase、从2个“表”中获取数据,我可以这样做: // first get post ids from feed: var feedRef = firebase.database().ref().child('Feed').child("-idownner").limitToLast(10); feedRef.once('value', async function(snapshot) { snapsho
// first get post ids from feed:
var feedRef = firebase.database().ref().child('Feed').child("-idownner").limitToLast(10);
feedRef.once('value', async function(snapshot) {
snapshot.forEach((subChild) => { // start the loop
var value = subChild.val();
value = value.postID;
//inside foreach loop select from posts: <<<---------------
var post = firebase.database().ref('/posts/' + value).orderByKey();
promises.push(new Promise((res, rej) => {
post.once('value', function(snapshot2) {
var obj = Object.assign(snapshot2.val(), { key: snapshot2.key });
res(obj);
});
}));
});
//首先从提要获取帖子ID:
var feedRef=firebase.database().ref().child('Feed').child(“-idownner”).limitToLast(10);
feedRef.once('value',异步函数(快照){
snapshot.forEach((subChild)=>{//启动循环
var值=subChild.val();
value=value.posted;
//在foreach循环内,从帖子中选择:是的,从第二个表中嵌套项的加载是使用Firebase进行客户端连接的正常方式。但是您不需要创建自己的承诺,因为once()
已经返回了一个承诺
因此,您可以将其简化为:
promises.push(
post.once('value').then((snapshot2) => Object.assign(snapshot2.val(), { key: snapshot2.key })
);
我不完全确定对象.assign
应该做什么,但我怀疑您可以将其简化为:
promises.push(
post.once('value').then((snapshot2) => { ...snapshot2.val(), key: snapshot2.key })
);