【发布时间】:2019-07-18 09:57:01
【问题描述】:
我在 Firebase 上使用 Cloud Firestore onCreate 触发器,其中客户端是 React Native 应用程序。
用户通过在附加了onCreate 触发器的单独集合中写入来获得积分。用户可以一个接一个地创建多个单点文档。
示例: 用户 1 获得 3x100 分。这将创建三个文档并触发三次。
第一次执行 g 找到最后一个用户点数(例如 500)将其增加 100,并将新状态 = 600 保存到用户配置文件中。 同时,在这完成之前,触发第二个触发器,读取之前的状态,因为之前的触发器还没有完成,所以它仍然是 500,将它增加 100,并保存 600。 第三个设法做同样的事情。
最终用户应该得到 500 + 100 + 100 + 100 = 800 分,但他只有 600 分,因为在第一个触发器完成更新用户配置文件之前触发了最后一个触发器,并且所有中间的更改都被覆盖。
如何解决这个问题?
谢谢。
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions