首页 > 解决方案 > 如何确保只获取 DB 中最近的 x 个帖子?

问题描述

我试图弄清楚我应该如何确保我只从数据库中获取最新的 x 帖子。

我当前的 fetch 方法工作如下:

GetPeopleIFollowAnd loop over each UID
        For each UID fetch his posts

但是,通过这样做,我不能有效地(快速)只获取最近的 x 个帖子。我怎样才能做到这一点?

我有一些可能的想法:

我在上述解决方案中看到的问题是,如果用户有数百万人关注他们,那么在更新这百万人中的每一个时,这将非常缓慢

我发现这似乎很有用。我怎么能用这个?

我的帖子数据库结构如下

Post
  UID
    postID
       Media
          media
             image: URL

基于如下的追随者结构:

WhoFollowsMeNode/UID/uid: true

每次用户发帖时,我都必须遍历此列表,在该列表中,我将为每个用户将帖子添加到那里的 timeLine ... 这似乎是不可撤销的,但他们似乎在这里所做的事情。

标签: firebasefirebase-realtime-database

解决方案


在实时数据库上,您可以使用limitToLast()方法,然后您可以传递要带多少元素,该方法将获取已添加到节点中的最后信息,因为文档是按时间戳排序的,如果您获取他们与limitToLast(10)您可以获得用户的最后 10 个帖子。

如果您正在使用帖子列表,您可以在向用户显示时反转列表,这样做,您将首先看到最新数据和下面的旧数据。


推荐阅读