簡體   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