【发布时间】:2018-06-20 15:24:14
【问题描述】:
我正在编写一个带有 HTTPS 触发器的 Firebase 云函数,并且我正在使用 Promise.all(arrayOfPromises) 一次启动多个读取操作,当所有承诺都得到满足时,then(snapshotContainsArrayOfSnapshots) 方法被触发,我尝试用forEach(snapshot) 方法迭代snapshotContainsArrayOfSnapshots,但我得到了这个错误:
Unhandled error TypeError: snapshot.val is not a function
代码如下: f
let promisesArray = []
for(let i = 0; i < 10; i++){
const promise = db.ref(`/questions/en/${i}`)
promisesArray.push(promise)
}
return Promise.all(promisesArray)
.then((snapshotContainsArrayOfSnapshots) => {
let data = []
snapshotContainsArrayOfSnapshots.forEach((snapshot) => {
data.push(snapshot.val())
})
return JSON.stringify(data)
})
记住:这不是onWrite 触发器,所以我不需要调用change.after。
【问题讨论】:
-
您能否添加其余代码,特别是您在
promisesArray中的承诺类型 -
@RenaudTarnec 我已经编辑了这个问题。
标签: javascript node.js firebase google-cloud-functions