Firebase 关系删除

Posted

技术标签:

【中文标题】Firebase 关系删除【英文标题】:Firebase relational delete 【发布时间】:2021-01-05 02:41:12 【问题描述】:

假设我有 4 个 firebase 集合。

类别 -> 子类别 -> 项目和收藏项

有了这些数据

类别:

类别名称

子类别:

子类别名称,CategoryID

项目:

项目名称、子类别 ID

最喜欢的物品:

用户 ID ItemIdArray

我希望能够删除一个类别,但同时删除所有子类别、项目和收藏夹,具体取决于该类别文档。

这样做的最佳方法是什么?

我是否应该将所有类别和子类别添加为项目的信息,然后将其删除。 有没有办法在数据库规则或存储函数中做到这一点? 或者我应该如何为我的数据建模?

【问题讨论】:

【参考方案1】:

这个问题很广泛,但我可以提出一些建议。有可能基于onDeletetrigger创建Firebase function。

使用此功能,您几乎可以运行由 Firestore 中的删除事件触发的所有逻辑。我可以想象你甚至可以创建“嵌套”解决方案,在每个项目上放置触发器。所以删除集合项,可以触发删除子类别的功能。删除子类别将触发另一个删除项目的函数......等等......

这当然是我们能想到的众多解决方案之一...... NoSql 数据库,如 Firestore,没有架构,它们提供了几乎无限数量的可能数据结构。

【讨论】:

以上是关于Firebase 关系删除的主要内容,如果未能解决你的问题,请参考以下文章

Firebase简单多对多关系

Firebase onDisconnect()不起作用

Firebase 通知:如何从 Firebase 中删除令牌?

在 Firebase 中构建关系

Flutter 和 Firebase:从 Firebase 中的数组中删除项目(地图)

Firebase我无法删除帐户[关闭]