【发布时间】:2021-06-09 06:32:27
【问题描述】:
由于 firebase (firestore) 没有提供任何简单且非扩展的解决方案来计算集合中的文档,我计划创建几个计数器来跟踪文档的数量。我有以下设置:
[collection] - [document] - [subcollection]
users userid profile
admin counters
我的想法是在集合“admin”中创建另一个文档“counters”,并在每次创建新的 userid 文档时更新字段“profile_created”。
我只看到一个问题。如果多人同时创建一个配置文件(创建了用户 ID),则读/写过程将不起作用,因为这几个人将获得相同的数字(读取)并且都会在这个数字上加 1。这意味着我将只有一个 +1,而不是几个 +1...
例如: profile_created = 5
5人同时注册
所有 5 人都将获得(读取)当前计数器编号(profile_created = 5) 所有 5 人都会为计数器添加 +1
结果不会是我想要的 11,我会是 6,因为不同的读取会覆盖其他读取...
有没有办法解决这个问题?
谢谢!!!
【问题讨论】:
标签: javascript firebase asynchronous google-cloud-firestore