firebase - 批量写入中的 Firestore 删除是原子的吗?
问题描述
我对删除的 Firestore 文档感到困惑。文档说:
也不能保证删除操作会统一成功或失败,因此请准备好处理部分删除的情况......没有原子删除集合的操作。
https://cloud.google.com/firestore/docs/solutions/delete-collections
不知道上面的说法是只指示例中的云功能还是一般的大规模删除。
但是,批量写入可以执行删除,而且它们是原子的。因此,如果一个少于 500 个文档的集合(批量写入操作限制)运行删除的批量写入操作,那不是原子集合删除吗?关于批量写入的文档没有提供说明,因为它没有说明一批操作是原子完成的,只是写入。我无法猜测这是否是故意的。
一批写入原子完成,可以写入多个文档。
https://cloud.google.com/firestore/docs/manage-data/transactions
删除整个集合(因为我知道随之而来的警告),在批量写入中执行删除是原子的吗?
解决方案
不知道上面的说法是只指示例中的云功能还是一般的大规模删除。
它适用于两者。这两种情况都涉及多次调用以删除所有文档,并且这些调用可能每次都成功或失败,从而使集合处于不一致的状态(部分删除)。需要进行第二波操作来清理其余文件。
另一方面,批量删除 500 个或更少的文档将为您保证单个批次的“全有或全无”行为。但是如果你有超过 500 个要删除,则需要多个批次,现在你又回到了上面的同一个问题——其中任何数量都可能成功或失败,你需要处理这个问题。
推荐阅读
- kotlin - 如何重新制作程序,以便在 KOTLIN 编程语言的函数参数中传递单词?
- java - 来自版本 5.4.1 的 Amadeus Dated Flight
- node.js - 使用 Jest 要求和模拟文件的正确顺序是什么?
- python - Django 身份验证 login() 返回匿名用户
- python - Python 中未知的字符串格式 pd.to_datetime。尝试将此格式转换为日期时间格式时遇到问题
- visual-studio-code - 有没有办法从浏览器中的 VSCode 终端/调试控制台链接打开 .html?
- keycloak - keycloak auth/admin/master/console/whoami 401(未经授权)
- python - 查找文本中每个句子的长度
- reactjs - 在 React 上开玩笑,测试一个叫作 prop
- node.js - 在 MongoDB 中,如何根据对象的值对对象进行排序?