为了账号安全,请及时绑定邮箱和手机立即绑定

Firestore 需要一分钟才能在 Firebase Cloud Function 中获取文档

Firestore 需要一分钟才能在 Firebase Cloud Function 中获取文档

噜噜哒 2023-06-09 14:58:45
我试图通过在 Firebase 的触发云函数中使用 firebase-admin 来获取内部文档:exports.onTransactionCreated = functions.firestore  .document("transaction/{id}")  .onCreate((snapshot, context) => {    const first = Date.now();    admin.firestore().collection('myCollection').doc(snapshot.data().myDocumentId).get()    .then((documentSnapshot) => {      const second = Date.now();      functions.logger.log(`seconds total = ${Math.floor((third - first) / 1000)}`);    }}控制台日志显示此结果:seconds bw 1-2 elapsed = 140使用的版本:"engines": {    "node": "12"  }, "dependencies": {    "firebase-admin": "^9.2.0",    "firebase-functions": "^3.11.0"  }在什么情况下可以检索到这么长的文档?即使在冷启动的情况下,我也不敢相信会这么久。这个问题实际上是我的应用程序的一大痛点,我们将不胜感激任何帮助。
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您的函数需要返回一个在所有异步工作完成后解析的承诺。现在,您的函数不返回任何内容,这意味着它会在不等待任何事情的情况下终止。


至少,您应该返回 返回的承诺get().then(...)。


exports.onTransactionCreated = functions.firestore

  .document("transaction/{id}")

  .onCreate((snapshot, context) => {

    const first = Date.now();

    return admin.firestore().collection('myCollection').doc(snapshot.data().myDocumentId).get()

    .then((documentSnapshot) => {

      const second = Date.now();

      functions.logger.log(`seconds total = ${Math.floor((third - first) / 1000)}`);

    }

}




查看完整回答
反对 回复 2023-06-09
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信