【问题标题】:Are Firestore deletes within batch writes atomic?批量写入中的 Firestore 删除是原子的吗?
【发布时间】:2020-04-13 21:53:13
【问题描述】:

我对 Firestore 关于删除的文档感到困惑。文档说:

也不能保证删除操作会统一成功或失败,因此请准备好处理部分删除的情况......没有原子删除集合的操作。

https://cloud.google.com/firestore/docs/solutions/delete-collections

我不知道上面的说法是只指示例中的云功能还是一般进行大规模删除。

但是,批量写入可以执行删除,而且它们是原子的。因此,如果一个少于 500 个文档的集合(批量写入操作限制)运行删除的批量写入操作,那不是原子集合删除吗?关于批量写入的文档没有提供说明,因为它没有说明一批 操作 以原子方式完成,只是写入。我无法猜测这是不是故意的。

一批写入原子完成,可以写入多个文档。

https://cloud.google.com/firestore/docs/manage-data/transactions

除了删除整个集合(因为我知道随之而来的警告),批量执行删除写入原子吗?

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    我不知道上面的说法是只指示例中的云功能还是一般进行大规模删除。

    两者都适用。这两种情况都涉及多次调用以删除所有文档,并且这些调用可能每次都成功或失败,从而使集合处于不一致的状态(部分删除)。需要进行第二波操作来清理其余文档。

    另一方面,批量删除 500 个或更少的文档可以保证单个批次的行为是全有或全无。但是,如果您要删除的数量超过 500 个,则需要多个批次,而现在您又回到了上面的同一个问题 - 任何数量的都可能成功或失败,您需要处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 2011-02-22
      • 2018-03-03
      • 2018-08-03
      • 1970-01-01
      • 2019-07-07
      • 2018-04-26
      相关资源
      最近更新 更多