Firebase错误:函数返回了未定义的预期承诺或值

时间:2018-12-04 10:48:14

标签: firebase google-cloud-functions

我非常感谢在几个地方回答了这个问题。我是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)
    })
})

给出警告:“函数返回了未定义的预期承诺或值”

我希望能得到一个解释,可以帮助我理解将来要使用的正确模式:)

非常感谢!

1 个答案:

答案 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。享受:)