【发布时间】:2019-12-03 16:20:08
【问题描述】:
我已经看过所有这些问题和资源,但都不能满足我的担忧。
Cloud functions and Firebase Firestore with Idempotency
Firebase cloud function idempotency in docs
How to make idempotent aggregation in Cloud Functions?
如果一个函数被多次执行并且同时运行,我如何知道另一个函数正在运行并安全地丢弃它?即使我将eventId 写入数据库的某个位置,在我设法写入此类信息之前,其他函数仍有可能运行。
使用 Firestore 事务可以解决这个问题吗?如果我要在事务中写入基于eventId 的文档,是否可以肯定地说在我释放“锁”之前任何其他功能都将保持?
使用.set 的方法对我来说不可行,因为某些函数会为文档生成唯一的 ID,所以我最终还是会多次编写这些 ID。其他一些功能非常精细,可以同时生成(或者更确切地说是转换)一堆文档。
尽管我很喜欢云功能的整体理念,但我希望有更多针对此的内置解决方案。为什么 Firebase 基本上不能满足开发人员的要求?他们可以将eventId 写入一些内部数据库并阻止函数多次运行。强迫每个人自己处理这听起来真的很愚蠢。
【问题讨论】:
标签: firebase google-cloud-functions