批量写入内Firestore删除是否是原子性的?

时间:2019-12-22 02:31:11

标签: firebase google-cloud-firestore

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

  

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

     

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

我不知道上面的陈述是仅引用示例中的cloud函数还是通常执行大规模删除。

批处理写入可以执行删除,但是它们是原子的。因此,如果少于500个文档的集合(批量写入操作限制)运行了delete的批量写入操作,那不是原子集合删除吗?批处理写入的文档没有澄清,因为它没有声明一批操作是原子完成的,只能进行写操作。如果这是故意的,我无法猜测。

  

一批写入可以自动完成,并且可以写入多个文档。

     

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

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

1 个答案:

答案 0 :(得分:1)

  

我不知道上面的陈述是仅引用示例中的cloud函数还是通常执行大规模删除。

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

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