Javascript 我可以使用Promise.all同时从firestore获取一些文档吗?
我想从Firestore买些文件。在我的可调用云函数中,我使用Promise.all,而不是一个接一个地等待获取文档,这样我可以更快地获取所有文档,如下所示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
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属性。