当通知集合中的字段更新时,我会触发以下触发器。在它完成它需要做的事情之后,我想为已更新的同一文档将 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
});
});
传递给您的 Cloud Function 的所有值都是不可变的。如果你想进一步更新数据库中的文档,你确实必须触发另一个写操作。
如果您要更新的字段在触发云功能的文档中(在您共享的代码中not似乎是这种情况),您可以从
change.before.ref
(或change.after.ref
)引用该文档所以更新它:
await change.before.update({
updateThisField: false
});