我的事件文档中有一个名为title
的字段,其中包含一个布尔值。我在文档中设置了onUpdate Firestore触发器。我想如果我的title
被更新,那么我将采取一些措施。但是如果其他字段已更新,那么我将完全不执行任何操作。该怎么做?
如果在每次文档更新时都调用下面的函数,我可以,但是我只想在title
更新时做一些进一步的动作
exports.dbEventsOnUpdate = functions.firestore
.document('events/{eventId}').onUpdate(async (change,context) => {
try {
const eventID = context.params.eventId
if (titleIsUpdated) {
return db.doc(``).set(newData)
} else {
// do nothing here
return null
}
} catch(error) {
console.log(error)
return null
}
})
答案 0 :(得分:1)
当前,无法基于字段更新来触发Firestore Cloud Functions。仅在文档更新时触发。
您实际上可以使用以下代码检查标题是否已更新:
const newValue = change.after.data();
const previousValue = change.before.data();
const titleIsUpdated = newValue.title !== previousValue.title;
但是请记住,在该文档中更改字段时,总是会触发您的函数。这可能会产生更多成本,因为Cloud Functions是基于函数调用收费的。 (请参见pricing)