【问题标题】:How to access updated value inside onUpdate function using Firebase cloud functions?如何使用 Firebase 云函数访问 onUpdate 函数中的更新值?
【发布时间】:2020-11-07 22:20:03
【问题描述】:

我正在开发一个个人 Web 应用程序项目。我有一个箭头函数,每次用户更新movieIndex集合中的文档时都会触发该函数。每当我的应用程序启动时,它会将电影文档的 isBeingReviewed 字段从 False 更新为 True。我想创建一个云函数,在 15 分钟后将 isBeingReviewed 的值设置为 false。如何访问更新的值并将字段设置为 false?超时是正确的方法吗?

admin.initializeApp();
    exports.newMessage = functions.firestore
      .document("movieIndex/{movie}")
      .onUpdate(async (change, context) => {
    
        const changedDoc = change.after.data();
    
        if (changedDoc.isBeingReviewed == true)
        {
            console.log("The current status of isBeingReviewed is equal to TRUE, set it to false after 15 minutes ")
            setTimeout( access changed value and set it to false ,1000 * 60 * 15)
        }
        else 
        {
            console.log("The current status of isBeingReviewed is equal to FALSE")
    
        }
       
      });

【问题讨论】:

    标签: javascript typescript firebase google-cloud-functions


    【解决方案1】:

    云函数的运行时间不能超过 9 分钟。默认超时为 60 秒。您将无法使用 JavaScript setTimeout 为以后安排一些工作,因为 Cloud Functions 将在配置的超时后关闭代码,并且来自 setTimeout 的回调将完全丢失。

    您将不得不使用Cloud Tasks 来安排稍后的另一个函数调用,或者您将不得不编写scheduled function 来定期检查要进行的更改。无论哪种情况,都需要大量的额外工作——没有真正“简单”的未来工作安排。

    另见:

    【讨论】:

      猜你喜欢
      • 2020-06-21
      • 2019-02-26
      • 1970-01-01
      • 2018-11-29
      • 2018-08-06
      • 2019-02-26
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多