【发布时间】:2020-06-10 12:05:47
【问题描述】:
我需要在使用 firebase 实时数据库的移动应用中实现最新帖子页面。
系统说明:
应用程序用户 (AU) 可以订阅创建帖子的内容创建者 (CC)。例如,我们有一个订阅内容创建者 CC1、CC2、CC3 的用户 AU123。另一个用户 AU456 订阅了 CC2、CC6、CC7 执行操作 getLatestPosts(AU123) 的最佳方式是什么?
一般来说,它与 Facebook 提供的功能非常相似(但由于我们只依赖帖子创建日期来构建最新列表,因此方式非常简单)。我们有用户关注(订阅)其他用户(内容创建者)。当我们打开 Facebook 时,我们可以看到最新帖子列表。
一个简单的解决方案是简单地为每个用户创建“最新”列表,并且一旦抄送帖子,他还将对他的帖子的引用附加到该列表中。但是如果有 1000 个用户订阅了 CC,我们需要将该 postID 附加到 1000 个列表中。
另一种方法是将所有对帖子的引用连同时间戳一起存储在一个列表中。然后,每个用户都可以获取该列表并仅从 CC 中选择他订阅的帖子。这个解决方案也不是最优的,因为帖子列表很快就会变得很长,甚至找到属于已订阅 CC 的单个帖子也可能需要一段时间(假设我们有 1000 个 CC 每天创建 1 个帖子,而用户只订阅了几个他们)。
您有任何文章或想法如何解决这个问题吗?是否甚至可以仅使用 firebase 数据库以合理的方式解决?
亲切的问候
【问题讨论】:
标签: firebase firebase-realtime-database google-cloud-platform nosql