首页 > 解决方案 > 如何使用 WriteBatch 删除文档引用列表?

问题描述

我正在使用 Firebase 云数据库。我有一个employees包含文档的集合,每个文档都代表一个员工。每个文档都包含一个字段,该字段shifts是一个引用数组(班次)。如果用户想要删除员工资料,则应删除此文档以及shifts数组中引用的所有文档。为了删除,我使用WriteBatch

WriteBatch batch = DB.batch();
// ...
batch.delete(DB.collection("employees").document(employeeUniqueID));

我试图找出消除这些变化的最佳方法。我可以获取员工文档并迭代每个班次shifts并将它们添加到delete列表中,但是 Firebase 是否允许通过某种方式在不迭代的情况下实现它?

标签: javafirebasegoogle-cloud-firestore

解决方案


除非您有某种方法可以在不查询数据库的情况下获取其他文档的 ID,否则您的提议没有真正的替代方案。如果您没有它们,那么实际上您将不得不查询它们、迭代它们,然后将它们单独添加到要删除的批处理中。


推荐阅读