Firestore 执行多个批量写入或事务,其中一个失败?

问题描述 投票:0回答:1

因为 Firestore 批量写入和事务有 500 个文档限制。为了解决/解决修改 1500 个文档的问题,我必须运行 3 个批量写入/事务。 如果 3 笔交易中有一笔失败怎么办?会发生什么?

  • 交易/批量写入1, 1 - 500个文档(成功)
  • 交易/批量写入 2, 501 - 1000 个文档(失败)
  • 交易/批量写入3、1001 - 1500个文档(成功)

结果是什么?,

1 - 500 newData,
501 - 1000 oldData, 
1001 - 1500 newData

1 - 500 newData,
501 - 1000 newData, 
1001 - 1500 newData

我目前正在使用 Flutter 移动 SDK。如果使用 CloudFunction 执行会有什么不同吗?

flutter google-cloud-firestore google-cloud-functions
1个回答
0
投票

单独的交易相互之间没有影响。因此,如果事务 2 失败,事务 1 和 3 仍可能完成 - 除非您自己的应用程序代码做了一些事情来阻止这种情况。

如果您使用服务器端 SDK 执行此操作,则没有区别,因为这些 SDK 的交易大小也有限制。

如何做到这一点(以及是否可能)100%取决于您的用例,但它通常涉及跟踪每个文档或每个批次是否已被处理。

© www.soinside.com 2019 - 2024. All rights reserved.