假设我有4个firebase集合。
类别->子类别->项目和收藏夹项目
用这个数据
类别:
- 类别名称
子类别:
- 子类别名称,类别ID
项目:
- 项目名称,子类别ID
收藏夹项目:
- 用户ID
- ItemIdArray
我希望能够删除一个类别,但同时删除所有子类别、项目和收藏夹,具体取决于该类别文档。
做到这一点的最佳方法是什么?
- 我应该添加所有类别和子类别作为项目的信息,然后删除它们吗
- 有没有一种方法可以在数据库规则或存储函数中做到这一点
- 或者我应该如何对我的数据建模
这个问题很宽泛,但我可以提出一些建议。有可能创建基于onDelete
触发器的Firebase函数。
使用此功能,您几乎可以运行Firestore中删除事件触发的每个逻辑。我可以想象,你甚至可以创造";嵌套的";解决方案为每一项设置触发器。所以删除集合项,可以触发删除子类别的功能。删除子类别将触发另一个函数,该函数将删除项目。。。等等。。。
这当然是我们可以处理的众多解决方案之一。。。像Firestore这样的NoSql数据库没有模式,它们提供了几乎无限数量的可能数据结构。