javascript - 我是否应该在 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}
})
解决方案
如果您删除等待,您将遇到问题。 没有它,函数将立即返回返回值,而无需等待 set() 完成。该函数将与任何未完成的异步工作一起终止。
对于可调用函数,该函数必须返回一个仅在所有异步工作完成后才解析的承诺。await 关键字在您的情况下会发生这种情况。
推荐阅读
- javascript - 在独立的 vue2 spa 中加载 json 翻译文件
- node.js - 云函数
- devexpress - PiranhaCMS 中的 DevExpress Web 仪表板
- python - 从客户端接收回数据
- vuejs3 - 如何从前端 VUE 解决 API 上缺少的后备语言
- sentry - Sentry:如何搜索上周解决的问题
- c# - .Net EF 身份表未显示在 db 中。获取无效对象名称“AspNetUsers”异常
- java - 我的客户端应用程序无法连接到服务器
- intellij-idea - 避免在 Intellij 中按 ctrl+click 自动转到单次使用
- javascript - 如果 javascript 对象是通过引用传递的,为什么在返回对象后对回调内部的对象所做的更改不会反映在外部?