java - 如何使用 WriteBatch 删除文档引用列表?
问题描述
我正在使用 Firebase 云数据库。我有一个employees
包含文档的集合,每个文档都代表一个员工。每个文档都包含一个字段,该字段shifts
是一个引用数组(班次)。如果用户想要删除员工资料,则应删除此文档以及shifts
数组中引用的所有文档。为了删除,我使用WriteBatch
:
WriteBatch batch = DB.batch();
// ...
batch.delete(DB.collection("employees").document(employeeUniqueID));
我试图找出消除这些变化的最佳方法。我可以获取员工文档并迭代每个班次shifts
并将它们添加到delete
列表中,但是 Firebase 是否允许通过某种方式在不迭代的情况下实现它?
解决方案
除非您有某种方法可以在不查询数据库的情况下获取其他文档的 ID,否则您的提议没有真正的替代方案。如果您没有它们,那么实际上您将不得不查询它们、迭代它们,然后将它们单独添加到要删除的批处理中。
推荐阅读
- javascript - 使用大参数时平滑滚动功能出现故障
- postgresql - Gorm 仅在条目不存在时创建
- python - 如何使用 Numpy 重塑?
- angular - 当我重复调用 API 时如何/在哪里检查 http 错误?
- xml - 使用 PL/SQL 将 XML 文件拆分成小块
- r - 过滤循环以创建多个数据框
- javascript - 如何在 React.js 中实现文本字段控件
- excel - ThisWorkbook.Activate 指令不起作用
- c++ - 如何在 C++ 中使用 SFML 播放音频
- node.js - 在 http 请求的各个部分共享 pg-promise 任务