我想从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());
//...
})
})