【发布时间】:2022-01-14 08:48:09
【问题描述】:
我有一个评论系统,我需要跟踪 cmets 的数量。我正在考虑使用onCreate 触发器来跟踪创建评论时的 cmets 计数。
我知道onCreate 触发器可以被多次调用,因此,为了使函数具有幂等性,我正在研究以下实现:
functions.firestore.document('users/{userId}/comments/{commentId}').onCreate(async (snap, context) => {
const data = snap.data()
if (data.counted) {
return
}
db.doc(`commentCounter/${userId}`).update({
value: admin.firestore.FieldValue.increment(1)
})
snap.ref.update({ counted: true })
}
这行得通吗?主要问题是来自snap 的数据是否反映了firestore 中的当前数据,还是文档创建期间的唯一数据。感谢您的宝贵时间。
【问题讨论】:
-
onCreate函数仅在在该特定路径上创建新文档时调用。
标签: node.js firebase google-cloud-firestore google-cloud-functions