实时数据库中的Firebase参照完整性

时间:2016-10-26 03:57:28

标签: ios uitableview firebase firebase-realtime-database referential-integrity

我正在开发一款iOS应用,用户可以在该应用中发帖,也喜欢其他用户的帖子。用户将能够在UITableView中查看他/她喜欢的所有帖子。

为实现这一目标,我使用Firebase作为后端,我在下面包含了我当前的数据库结构。

root
  |
  ---posts
  |     |-post1
  |     |   |-title: "Post One Title"
  |     |   |-author: "userX"
  |     |-post2
  |     |   :
  |     :
  |     |-postN
  |
  ---users
  |     |-user1
  |         |-name: "John Doe"
  |         |-email: "example@gmail.com"
  |
  ---user-favorites
        |
        |-user1
            |-post1: true
            |-post2: true

为了显示特定用户的所有收藏帖子(例如 user1 ),我目前正在观察/user-favourites/user1childAdded事件的childRemoved参考。这工作正常,但问题是:假设 post1 (由 userX 制作)被删除,对它的引用仍然在 user1 随着时间的推移, user1 的收藏夹会有很多引用指向不存在的帖子。

如何确保维护参照完整性,即 userX 删除 post1 post1 自动离开 user1 的收藏列表(并且也会自动从UITableview中删除),另外,如果 post1 被修改(比如说它的标题已更改), user1的TableView 也会自动反映这个新标题。

而不是代码示例,我对设计建议更感兴趣,特别是如果您已经体验并解决了这样的问题。但是,建议是受欢迎的,如果代码示例显示您的观点,那么一定要发布它们。感谢。

0 个答案:

没有答案