首页 > 解决方案 > 我是否应该在 Firebase 云功能中等待 Firestore 设置调用

问题描述

假设我有这样的云功能

export const setData = functions.https.onCall(async (data, context) => {
    await admin.firestore().doc("myPath").set({data: "myData"})
    return {success: true}
})

如果我不关心firestore set 调用是否成功,我可以删除等待吗?因此该函数更早地返回并减少了 CPU 使用时间。

export const setData = functions.https.onCall(async (data, context) => {
    admin.firestore().doc("myPath").set({data: "myData"})
    return {success: true}
})

标签: javascriptfirebasegoogle-cloud-firestoregoogle-cloud-functions

解决方案


如果您删除等待,您将遇到问题。 没有它,函数将立即返回返回值,而无需等待 set() 完成。该函数将与任何未完成的异步工作一起终止。

对于可调用函数,该函数必须返回一个仅在所有异步工作完成后才解析的承诺。await 关键字在您的情况下会发生这种情况。


推荐阅读