使用Firebase实时数据库或Firestore来设置RSS订阅或社交媒体平台的动态信息源。

5 浏览
0 Comments

使用Firebase实时数据库或Firestore来设置RSS订阅或社交媒体平台的动态信息源。

我想要创建一个应用程序,其中包含类似于RSS订阅或者你在Instagram或者Facebook上看到的动态流。我目前正在尝试使用Firebase实时数据库或者Firestore作为后端来存储向用户展示的帖子。但是我似乎想不出一个解决方案来使其工作。理想的解决方案是按照时间顺序发送帖子列表,并且不需要在客户端进行任何额外的排序。当我尝试使用实时数据库时,我可以轻松地将所有相关帖子添加到自己的路径中,并在客户端进行排序(或者可能使用云函数在服务器端对数据进行排序)。当尝试使用Firestore来提出解决方案时,我的想法是让帖子文档保存对一个子集合的引用,该子集合保存订阅者/关注者的列表,但是我似乎找不到一种方式来根据在引用的子集合中是否存在文档来选择帖子。

顺便说一下,我希望实现理想的解决方案是因为需要分页。

0
0 Comments

使用Firebase实时数据库或Firestore来设置RSS订阅或社交媒体平台的动态源的原因是,通过这些工具可以方便地存储和检索数据,并且可以根据日期进行排序和筛选。

解决方法是使用Firebase的实时数据库或Firestore的特定功能来实现所需的功能。首先,需要将日期存储为时间戳。然后,可以使用数据库引用(db.ref)来按照日期进行排序,并限制返回的结果数量。使用orderByChild('date')可以按照日期进行排序,使用limitToLast(10)可以限制返回的结果数量为最后10个。

如果需要获取之前的10个结果,可以通过获取这些结果中最早的帖子的日期,并使用endAt方法来筛选出比该日期早1的结果,再使用limitToLast(10)来限制返回的结果数量。

需要注意的是,如果有多个帖子具有相同的日期值,则可能需要以不同的方式处理。

如果使用实时数据库,帖子将按照它们被添加到路径中的顺序返回,而不是它们被创建的顺序。如果订阅了新用户,所有的帖子将被追加到列表的末尾,而不是按照时间顺序。如果使用Firestore,可以将所有的帖子放在一个单独的集合中,并按照时间顺序进行排序,然后根据用户是否订阅了作者来返回帖子。由于文档的大小限制,可以将粉丝列表保存为引用的子集合。

总结一下,使用Firebase实时数据库或Firestore可以方便地设置RSS订阅或社交媒体平台的动态源。通过存储数据为时间戳,并使用特定的排序和筛选功能,可以实现按照日期排序并限制返回结果数量的功能。使用实时数据库时,帖子按照添加到路径中的顺序返回,而使用Firestore时,可以按照时间顺序将帖子放在一个集合中,并根据用户的订阅情况返回帖子。

0