因为 Firestore 批量写入和事务有 500 个文档限制。为了解决/解决修改 1500 个文档的问题,我必须运行 3 个批量写入/事务。 如果 3 笔交易中有一笔失败怎么办?会发生什么?
结果是什么?,
1 - 500 newData,
501 - 1000 oldData,
1001 - 1500 newData
或
1 - 500 newData,
501 - 1000 newData,
1001 - 1500 newData
我目前正在使用 Flutter 移动 SDK。如果使用 CloudFunction 执行会有什么不同吗?
单独的交易相互之间没有影响。因此,如果事务 2 失败,事务 1 和 3 仍可能完成 - 除非您自己的应用程序代码做了一些事情来阻止这种情况。
如果您使用服务器端 SDK 执行此操作,则没有区别,因为这些 SDK 的交易大小也有限制。
如何做到这一点(以及是否可能)100%取决于您的用例,但它通常涉及跟踪每个文档或每个批次是否已被处理。