firebase - 哈希图是否需要事务
问题描述
我在文档中有一个哈希图。假设它看起来像:
userHasFinished: {
'user1': false,
'user2': false,
'user3': false,
}
如果我将此哈希图中的特定字段从false
to更新true
,并且我知道只有一个用户可以为特定字段启动写入(这由身份验证保护),我是否需要此更新的事务?
放另一个,我是否需要一个事务来对 hashmap 进行并发更新,即使这些并发更新总是针对 hashmap 中的不同键?
我假设不是因为整个 Firestore 文档本质上是一个哈希图,而且您当然不需要事务来更新文档中的各个字段。
解决方案
如果您写入的数据依赖于同一文档中的当前数据,您只需要使用事务。
将自己的 UID 添加到地图的用户不需要文档中的现有数据,因此可以通过合并set
或更新调用安全(并且更有效)完成,只要您使用.
. 例如:{ "userHasFinished.user1": false }
。
另请参阅有关更新嵌套对象中的字段的文档,其中包含许多受支持语言的示例代码。
推荐阅读
- spring - 为什么 Spring Boot Embedded tomcat 会延迟 API 响应?
- vbscript - 将数据从 sub-Sub 传输到 Function 并返回到 main Sub
- openstack - 为什么我不能在地平线上启用openstack“浮动IP端口转发”功能
- python - 如何在熊猫数据框列中创建嵌套数组
- node.js - 带有 Docker 的补丁包
- jekyll - 使用 Jekyll 在帖子名称下显示帖子的简短描述
- bootstrap-4 - 如何解决角度 12 中的“无法读取 null 的属性 'bootstrap'”?
- php - Laravel toSql 在 flatten() 之后不存在
- python - 检查矩阵的行是否仅包含零的函数
- php - Laravel 匿名通知 - 如何从 Laravel Notification::route() 函数获取路由值?