Cloud Firestore 事务的限制
Limitations on Cloud Firestore transactions
我已阅读有关 transactional update operations on Firestore. According to Quotas and Limits 的文档,关于交易只有两个限制:
- Maximum size for a transaction: 10 MiB
- Time limit for a transaction: 270 seconds, with a 60-second idle expiration time
没有明确提到与事务相关的限制,在事务期间可以读取 and/or 修改多少文档或集合,或者是否对发生事务更新的集合有任何其他限制。
这是否意味着,客户端最多可以对 500 个文档进行事务更新,每个文档都在不同的集合中,只要更新保持在这些和其他一般限制内?
如果客户端在事务中读取多个文档,但只更新其中一个 - Firestore 是否仍(静默地)写入未修改的文档(用于序列化等)......所以我有考虑每个文档每秒写入 1 次的写入限制,即使对于客户端未明确修改的文档也是如此。
P.S.: 我问的原因是 Datastore 在事务中有 25 个实体组的限制,并且还看到实体中的热点 ("documents") 在许多内部是只读的写交易。例如,参见 。我只是想知道 Datastore 的哪些特性会转移到 Firestore,并且在设计 Firestore 数据库时必须考虑。
请参阅第 "Maximum number of documents that can be passed to a Commit operation" 行,它定义了 500 个文档的限制。这是您的事务限制,因为我们需要使用一次提交来应用事务中的所有内容。
我认为不再需要静默写入来确定文档在事务中是否已更改。
没有相当于 25 个实体组限制的相关限制。
我已阅读有关 transactional update operations on Firestore. According to Quotas and Limits 的文档,关于交易只有两个限制:
- Maximum size for a transaction: 10 MiB
- Time limit for a transaction: 270 seconds, with a 60-second idle expiration time
没有明确提到与事务相关的限制,在事务期间可以读取 and/or 修改多少文档或集合,或者是否对发生事务更新的集合有任何其他限制。
这是否意味着,客户端最多可以对 500 个文档进行事务更新,每个文档都在不同的集合中,只要更新保持在这些和其他一般限制内?
如果客户端在事务中读取多个文档,但只更新其中一个 - Firestore 是否仍(静默地)写入未修改的文档(用于序列化等)......所以我有考虑每个文档每秒写入 1 次的写入限制,即使对于客户端未明确修改的文档也是如此。
P.S.: 我问的原因是 Datastore 在事务中有 25 个实体组的限制,并且还看到实体中的热点 ("documents") 在许多内部是只读的写交易。例如,参见
请参阅第 "Maximum number of documents that can be passed to a Commit operation" 行,它定义了 500 个文档的限制。这是您的事务限制,因为我们需要使用一次提交来应用事务中的所有内容。
我认为不再需要静默写入来确定文档在事务中是否已更改。
没有相当于 25 个实体组限制的相关限制。