如何确保仅获取数据库中x篇最新文章?

时间:2019-05-02 13:11:11

标签: firebase firebase-realtime-database

我试图弄清楚我应该确保自己仅从数据库中获取最新的x帖子的程度。

我当前的提取方法如下:

GetPeopleIFollowAnd loop over each UID
        For each UID fetch his posts

但是,通过这样做,我无法高效地(快速)仅获取最新的x帖子。 我该怎么做?

我有一些可能的想法:

  • 创建一个新节点,每当您的关注者发布一个帖子时,它们就会通过timeStamp添加到您的UID下。因此,当我提取数据时,我会为每个UID循环遍历FollowersWhoCreatedRecently,并且只对前10个这样做

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

I have found this which seems like it may be of use. How could I use this?

我的帖子数据库结构如下

Post
  UID
    postID
       Media
          media
             image: URL

基于跟随者结构,例如:

WhoFollowsMeNode/UID/uid: true

每次用户发布时,我都必须遍历此列表,在该列表中,我将为每个用户将发布内容添加到那里timeLine ...这似乎是不可撤消的,但看起来他们是doing here

1 个答案:

答案 0 :(得分:1)

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

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