Firebase 云函数触发器需要大约 4 分钟才能更新记录

问题描述 投票:0回答:1

我有一个云功能项目,我使用 Firestore 作为数据库。我有一个充当 RESTapi 的函数。我还有一个云函数触发器,它将在文档创建时运行。

场景

  1. 前端向 RESTapi 发送请求,创建一个文档
  2. onCreate 触发器被调用

当 onCreate 触发器被调用时,我向第 3 方 API 发送请求。该 API 返回一个 ID,我将其设置回 Firestore 中最近创建的文档。


  // Runs inside onCreate trigger "some-collection/{someId}"
  const result = await fetchIdFromA3rdPartyAPI(query);
  if (result) {
    try {
        await firestore()
         .collection("some-collection")
         .doc(docId)
         .set({
           someId: parseInt(result)
         }, { merge: true });
    } catch (err) {
      // log to gcp Cloud Logging
      console.log(err);
    }
  }

问题

如果在冷启动后调用此 onCreate,则最多需要 4 分钟才能使用

someId
字段更新文档。

如果我按如下方式拆分更新调用,

   const doc = await firestore().collection("some-collection").doc(docId);
   // console.log('reached here', doc);
   await doc.set({...})

现在我可以看到控制台日志“到达这里”,这意味着需要 4 分钟才能解决

set()
调用(也尝试过
update()
)。

如果我在解决此问题后立即触发

onCreate
,它会立即生效。所以这似乎只发生在冷启动时。


所有功能均使用以下配置运行

timeouteSeconds: 540
memory: 4GB
maxInstance: 1
version: v1

也没有任何异常。我在日志上也看不到任何错误。

这可能是什么原因?

firebase google-cloud-firestore google-cloud-functions
1个回答
0
投票

我也面临着同样的问题。祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.