有什么方法可以指定类似";"最终";当你执行一个Firestore触发器,这样一个有很多触发器的应用程序就不会创建递归更新时?
举个简单的例子,这里有一个触发器,它将created_date字段添加到创建的每个文档中:
exports.setCreatedDate = functions.firestore
.document('{collectionID}/{docID}')
.onCreate((change, context) => {
const patch = {created_at: Date.now()};
return change.ref.set(patch, {merge: true});
});
当文档更新时,另一个触发器也会执行同样的操作:
exports.setUpdatedDate = functions.firestore
.document('{collectionID}/{docID}')
.onUpdate((change, context) => {
const patch = {updated_at: Date.now()};
return change.after.ref.set(patch, {merge: true});
});
在我们设置created_at时间后,是否有任何内置的方法(我已经有了一些棘手的解决方案(来阻止更新启动?
我们正在为一个必须扩展到1亿条以上记录的企业应用程序移动尽可能多的应用程序逻辑,而级联触发器正在导致Firestore请求的巨大峰值。
一个显而易见的解决方案是使用单个触发器,然后有一堆被调用的函数,但我喜欢严格使用核心功能的简单性,并且能够编写尽可能多的独立触发器。
有什么方法可以指定类似于"最终";当你执行一个Firestore触发器,这样一个有很多触发器的应用程序就不会创建递归更新时?
否。
在我们设置created_at时间后,是否有任何内置的方法(我已经有了一些棘手的解决方案(来阻止更新启动?
否。
您必须在函数中编写代码,以确定调用是否不应该再进行任何更改,并提前返回。通常通过查看文档中的现有字段来检查是否已经进行了更改。