首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找出Firestore中事务失败的根本原因?

如何找出Firestore中事务失败的根本原因?
EN

Stack Overflow用户
提问于 2019-07-21 07:00:39
回答 1查看 474关注 0票数 4

如果Firestore事务失败,它将抛出FirestoreException,只表示“由于重试次数过多而取消了事务”

即使我将退休人数设置为1,也没有根本原因或任何其他线索。

有可能找到根本原因吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-03 21:50:58

文档称,带有消息的FirestoreException“由于重试次数过多而取消了事务”。只能在private void runTransactionAttempt下找到

代码语言:javascript
复制
 private void maybeRetry() {
            if (attemptsRemaining > 0) {
              span.addAnnotation("retrying");
              runTransactionAttempt(
                  transactionCallback,
                  resultFuture,
                  new TransactionOptions(
                      attemptsRemaining, options.getExecutor(), transaction.getTransactionId()),
                  span);
            } else {
              span.setStatus(TOO_MANY_RETRIES_STATUS);
              rejectTransaction(
                  FirestoreException.serverRejected(
                      Status.ABORTED, "Transaction was cancelled because of too many retries."));
            }
          }

正如您所看到的,在尝试运行事务和/或批写时,您遇到了重复的异常。在查看[消]火基文件之后,您可以看到三个导致事务失败的主要原因:

1.事务包含写操作后的读操作。读取操作必须总是在任何写操作之前。 2.事务读取在事务之外修改的文档。在这种情况下,事务会自动再次运行。 3.事务被重试了有限次。事务超过了10 MiB的最大请求大小。事务大小取决于事务修改的文档和索引项的大小。对于删除操作,这包括目标文档的大小和响应该操作而删除的索引项的大小。

为了调试这个问题,我强烈建议进一步阅读的以下来源--如果您的部分没有代码片段,就很难帮助您实现解决方案:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57131045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档