我正在开发一款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/user1
和childAdded
事件的childRemoved
参考。这工作正常,但问题是:假设 post1 (由 userX 制作)被删除,对它的引用仍然在 user1 随着时间的推移, user1 的收藏夹会有很多引用指向不存在的帖子。
如何确保维护参照完整性,即 userX 删除 post1 , post1 自动离开 user1 的收藏列表(并且也会自动从UITableview中删除),另外,如果 post1 被修改(比如说它的标题已更改), user1的TableView 也会自动反映这个新标题。
而不是代码示例,我对设计建议更感兴趣,特别是如果您已经体验并解决了这样的问题。但是,建议是受欢迎的,如果代码示例显示您的观点,那么一定要发布它们。感谢。