首页 > 解决方案 > 哈希图是否需要事务

问题描述

我在文档中有一个哈希图。假设它看起来像:

userHasFinished: {
 'user1': false,
 'user2': false,
 'user3': false,
}

如果我将此哈希图中的特定字段从falseto更新true,并且我知道只有一个用户可以为特定字段启动写入(这由身份验证保护),我是否需要此更新的事务?

放另一个,我是否需要一个事务来对 hashmap 进行并发更新,即使这些并发更新总是针对 hashmap 中的不同键?

我假设不是因为整个 Firestore 文档本质上是一个哈希图,而且您当然不需要事务来更新文档中的各个字段。

标签: firebasegoogle-cloud-firestore

解决方案


如果您写入的数据依赖于同一文档中的当前数据,您只需要使用事务。

将自己的 UID 添加到地图的用户不需要文档中的现有数据,因此可以通过合并set或更新调用安全(并且更有效)完成,只要您使用.. 例如:{ "userHasFinished.user1": false }

另请参阅有关更新嵌套对象中的字段的文档,其中包含许多受支持语言的示例代码。


推荐阅读