Javascript 在firebase中选择内部循环?

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

我知道在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) {

            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 })
);