【问题标题】:Google cloud functions | A function with trigger onUpdate is getting called every time another with onCreate is triggered for realtime database谷歌云功能 |每次为实时数据库触发另一个带有 onCreate 的函数时,都会调用带有触发器 onUpdate 的函数
【发布时间】:2019-06-28 09:33:14
【问题描述】:

我的代码中有两个云函数:一个带有 onCreate,另一个带有 onUpdate 触发器,用于同一路径上的实时数据库。 每当添加新数据时,也会调用带有 onUpdate 的函数。我怎样才能防止这种情况发生?

exports.createSdkUser = functions.database.ref("users/{app}/{user}").onCreate(async (snapshot, context) => {
    ...
});


exports.updateSdkUser = functions.database.ref("/users/{app}/{user}").onUpdate(async (snapshot, context) => {
    ...
});

【问题讨论】:

  • 当然会调用它,因为您将数据添加到它的观察点,它是同一个文档/路径

标签: javascript node.js firebase-realtime-database google-cloud-functions


【解决方案1】:

创建onUpdate() 函数就像为该文档设置一个观察者事件...如果添加、更改或删除任何数据,则该函数将被执行...您无法阻止这种情况的发生,但您可以设置条件应该在该函数上执行,不应该使用以下条件:

  exports.updateSdkUser = functions
 .database.ref("/users/{app}/{user}")
 .onUpdate(async (snapshot, context) => {
  snapshot.forEach((snap)=>{
      if(snap.data().username) {
        // Do this if there is certain data in my database (for example : username)
      }else {
        // else just return don't do anything
        return;
      }
   })
  });

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2018-04-30
    • 2018-07-21
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2018-10-31
    • 2020-07-08
    相关资源
    最近更新 更多