我能用Promise.all同时从消防商店拿到一些文件吗



我想从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

})

我有一个错误

TypeError:无法读取未定义的属性"forEach">

这里出了什么问题?我该怎么办才能拿到刚从Firestore拿到的文件?

get()方法返回一个Promise,该Promise用QuerySnapshot解析。

由于CCD_ 3〃;返回解析为输入Promise的结果的数组的单个Promise";,latestEventDataSnapshot是一个QuerySnapshot的数组,您需要对其进行循环,例如:

const latestEventDataSnapshot = await Promise.all(promises)
latestEventDataSnapshot.forEach(querySnapshot => {
querySnapshot.docs.forEach(queryDocumentSnapshot => {
console.log(queryDocumentSnapshot.data());
//...
})
})

相关内容

  • 没有找到相关文章

最新更新