onUpdate Firestore 触发器完成处理后更新字段的最快方法是什么?

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

当通知集合中的字段更新时,我会触发以下触发器。在它完成它需要做的事情之后,我想为已更新的同一文档将 1 个字段设置为 false。这是最简单的方法吗?我知道我有

change.after
可用,但不确定我是否可以做像
change.after.updateThisField = true
这样的事情。那将是最简单的,但如果可能的话,那么下面的呢?这行得通吗?

export const onRespondedToFriendRequest = functions.firestore
  .document("users/{userDocID}/notifications/{notifID}")
  .onUpdate(async (change, context) => {

  //...rest of code

  //Update one of the fields
  await fs
        .collection("users")
        .doc(uid)
        .collection("friends")
        .doc(change.after.id)
        .update({
          updateThisField: false
        });
});
javascript firebase google-cloud-firestore
1个回答
1
投票

传递给您的 Cloud Function 的所有值都是不可变的。如果你想进一步更新数据库中的文档,你确实必须触发另一个写操作。

如果您要更新的字段在触发云功能的文档中(在您共享的代码中not似乎是这种情况),您可以从

change.before.ref
(或
change.after.ref
)引用该文档所以更新它:

await change.before.update({
  updateThisField: false
});
© www.soinside.com 2019 - 2024. All rights reserved.