javascript - 如何避免 firebase 函数递归

标签 javascript firebase google-cloud-firestore google-cloud-functions

以下场景:

创建一个测验应用程序。每当用户结束测验时,他的分数就会更新。在此更新中,firebase 函数更新了所有用户的排名:

exports.onMessageCreate = functions.firestore
  .document('users/{userId}')
  .onUpdate((change, context) => {

    var test=  admin.firestore().collection('users');

    test.orderBy('totalScore', 'desc').get().then(querySnapshot => {
      var rank = 1;
      querySnapshot.forEach(user => {
        user.ref.set({globalRanking: rank}, {merge: true}).then(res => { });;
        rank++;
      });
    });

    return null;

  });

问题是,使用 documentSnapshot.ref.set 时,用户会再次更新,因此每次完成 firebase 函数时都会再次触发。我怎样才能避免这种情况?

最佳答案

当用户结束测验时,他会更新或推送到不同的节点。 该函数监视该节点并更新所有用户排名

关于javascript - 如何避免 firebase 函数递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54808017/

相关文章:

javascript - 检查字符串中某个字符的使用次数的函数

ios - 如何使用 Swift 访问 Firebase 数据库中的一组键值?

javascript - 如何监听 firestore 子集合中所有文档的更改?

javascript - 具有 0.01 个步骤的数字输入为 angularjs 中的某些值提供未定义

javascript - 将 3 个简单方 block 链接到包含所需颜色的数据

javascript - Javascript : Nested Return Statement, return inside Return

firebase - 编译的 Jar 不断抛出 : Uncaught exception in the SynchronizationContext

java - "Failed to resolve: com.google.firebase:firebase-core:9.0.0"

Firebase:从之前的导出中导入 firestore 数据库会触发 Cloud Functions 吗?

firebase - 错误 : Failed to get Firebase project project-name. 请确保该项目存在并且您的帐户有权访问它