【发布时间】:2021-07-18 08:27:39
【问题描述】:
我想知道如何处理 Firestore 中的并发写入。
场景:
HTML 表单直接从前端提交。将应用安全规则。我已经使用 Cloud Functions 设置了回调来进行后期操作。我还处理了回调的唯一时间。 (这样每个回调每个请求只调用一次,参考这个article,第2.4点)
对于每个回调,我想总结一下“金额”字段,它是用户提供的整数类型。总金额将存储在单独的文档中,例如summaryCollection/summaryDoc/totalAmount
如果同时有 10 个用户同时提交表单,例如 用户1:数量:10 用户2:数量:20 用户3:数量:30 . . . 用户 10:数量:100
totalAmount 的值是否正好是 (10 + 20 + ... + 100) = 550??
我是否需要在回调 onCreate 中添加 Firestore 事务代码?是否会同时调用 2 个或更多回调?因为我需要阅读以获取 totalAmount 的最新值并从新金额中求和。
另外,如果我不使用回调方法并创建一个云函数来处理 POST 请求,如何处理并发写入totalAmount? Firestore Transaction能解决问题吗?
非常感谢,
【问题讨论】:
标签: firebase google-cloud-firestore