【问题标题】:Do hashmaps needs transaction哈希图是否需要事务
【发布时间】:2021-04-13 16:12:24
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 嗨,克里斯。你在这方面有什么进展吗?我尝试在下面提供答案。你有机会去看看吗?

标签: firebase google-cloud-firestore


【解决方案1】:

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

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

另请参阅updating fields in nested objects 上的文档,其中包含许多受支持语言的示例代码。

【讨论】:

    猜你喜欢
    • 2015-11-27
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 2011-03-06
    • 2016-09-01
    • 1970-01-01
    相关资源
    最近更新 更多