我非常感谢在几个地方回答了这个问题。我是Firebase云功能(和学习TS)的新手,所以我只想在自己的背景下查看解决方案以充分了解此处的问题。
我的index.ts:
exports.OnPlanCreate = functions.database
.ref(`users/{uid}/plans/{key}`)
.onCreate((snapshot, context) => {
const user: string = context.params.uid
const fBaseKey: string = context.params.key
// const plan: any = snapshot.val()
console.log(`New plan created with key ${fBaseKey}for user ${user}`)
// Update plan object key with Firebase generated DB key
snapshot.ref.update({ key: fBaseKey })
.then(() => {
console.log('Plan key auto updated successfully!')
})
.catch((e) => {
console.error(e)
})
})
给出警告:“函数返回了未定义的预期承诺或值”
我希望能得到一个解释,可以帮助我理解将来要使用的正确模式:)
非常感谢!
答案 0 :(得分:0)
这意味着您需要从函数中返回。所以尝试一下,它应该可以工作:
exports.OnPlanCreate = functions.database
.ref(`users/{uid}/plans/{key}`)
.onCreate((snapshot, context) => {
const user: string = context.params.uid
const fBaseKey: string = context.params.key
// const plan: any = snapshot.val()
console.log(`New plan created with key ${fBaseKey}for user ${user}`)
// Update plan object key with Firebase generated DB key
return snapshot.ref.update({ key: fBaseKey })
.then(() => {
console.log('Plan key auto updated successfully!')
})
.catch((e) => {
console.error(e)
})
})
如果您想了解打字稿和云函数,那么这是一个很好的起点: https://firebase.google.com/docs/functions/terminate-functions
如果您需要真实的示例,Firebase也拥有一个不错的GitHub repo。享受:)