删除Firestore文档或通过GUI删集合是否会同步删除关联子集合?
Firestore删除操作规则解答
此处文档说明删除Firestore文档不会同步删除其子集合,该说明是否为最新有效内容?
通过GUI删除集合时,是否也遵循该规则?我已了解可通过Cloud Functions实现同步删除子集合的操作。
关于删除文档不同步删除子集合的说明有效性
该说明目前完全有效,完全符合Firestore的核心存储设计逻辑。Firestore的父文档与子集合为独立分层存储结构,不存在级联删除的绑定关系,删除父文档仅会移除该文档本身的字段数据,其下所有子集合、子文档都会完整保留,后续重新创建同名父文档时,原有子集合的所有数据仍可正常读取访问。关于GUI删除操作的遵循规则
通过Firebase控制台GUI执行删除操作时完全遵循上述规则:
- 单独删除单份文档时,默认仅清理该文档自身数据,其下挂载的所有子集合不受任何影响
- 直接删除某个集合时,GUI默认仅清理该集合下的所有直属文档,这些直属文档下挂载的子集合仍会保留,不会被同步删除
注:Firebase控制台GUI没有提供一键递归删除文档+所有子集合的功能,如果需要小范围清理子集合只能手动逐层进入对应子集合执行删除操作,大数据量的递归删除建议使用官方CLI工具处理。
如果需要一次性删除指定路径下的文档及所有层级子集合,可使用Firebase CLI的递归删除命令:
firebase firestore:delete <目标文档/集合路径> --recursive
内容的提问来源于stack exchange,提问作者Tom1998
相关产品推荐
相关产品推荐

