繁体   English   中英

NodeJs function 在 Firebase 云函数中无法按预期工作

[英]NodeJs function not working as expected in Firebase Cloud functions

我对节点/Js 不熟悉,但我有 9 个函数需要在 Firebase 云函数中使用,我在 ZBF12E1515C25C7D8C0352F1413AB9 上按预期工作了 function,但未按预期工作。

只是为了澄清我要更新的文档在 firestore 的这个层次结构中:

用户(集合)-> abcUser(文档)-> 其他(集合)-> 限制器(文档)

以下是在谷歌云上成功运行但文档没有更新/更改的功能之一:

exports.resetLimiter = functions.pubsub
.schedule("*/5 * * * *")
.onRun( async (context) => {
  const snapshot = await db.collection("users").get();
  for (let i = 0; i < snapshot.docs.length; i++) {
    await snapshot[i].query.get.collection("others").doc("limiter")
        .update({
          weeklyFlow: 0.0,
          monthlyFlow: 0.0,
        });
  }
});

和平!

update()返回 promise,但您忽略了它们。 这会导致 function 无需等待更新完成即可完成。 您需要在返回之前等待每个人。

此外,您的 function 在使用 Firestore API 的方式上似乎不正确。 DocumentSnapshot 对象get属性。 无论如何,我都会尝试用await重写它。

      for (var i = 0; i < snapshot.docs.length; i++) {
        await db.collection("others").doc("limiter")
            .update({
              weeklyFlow: 0.0,
              monthlyFlow: 0.0,
            });
      });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM