Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以使用Promise.all同时从firestore获取一些文档吗?_Javascript_Node.js_Firebase_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Javascript 我可以使用Promise.all同时从firestore获取一些文档吗?

Javascript 我可以使用Promise.all同时从firestore获取一些文档吗?,javascript,node.js,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Firestore,Google Cloud Functions,我想从Firestore买些文件。在我的可调用云函数中,我使用Promise.all,而不是一个接一个地等待获取文档,这样我可以更快地获取所有文档,如下所示 const promises = [] upcomingEventIDs.forEach( upcomingEventIDs => { const p = db.collection("events") .where("e

我想从Firestore买些文件。在我的可调用云函数中,我使用Promise.all,而不是一个接一个地等待获取文档,这样我可以更快地获取所有文档,如下所示

        const promises = []

        upcomingEventIDs.forEach( upcomingEventIDs => {

            const p = db.collection("events")
            .where("eventID","==",upcomingEventIDs)
            .where("isActive","==",true)
            .where("hasBeenApproved","==",true)
            .where("isCancelled","==",false)
            .get()

            promises.push(p)
        })

        const latestEventDataSnapshot = await Promise.all(promises)
然后我想循环我刚得到的文档快照,问题是

    latestEventDataSnapshot.docs.forEach( doc => { // <-- error in this line

        

    })
latestEventDataSnapshot.docs.forEach(doc=>

由于“返回解析为输入承诺结果数组的单个承诺”,
latestEventDataSnapshot
是一个
QuerySnapshot
s数组,您需要对其进行循环,例如:

    const latestEventDataSnapshot = await Promise.all(promises)

    latestEventDataSnapshot.forEach(querySnapshot => {

        querySnapshot.docs.forEach(queryDocumentSnapshot => {

            console.log(queryDocumentSnapshot.data());
            //...

        })

    })
是的,您可以,但是您得到了一个数组,它本身没有docs属性。