Firebase:如何在过去n天内构建最多共享帖子的数据?

时间:2017-08-10 14:16:27

标签: firebase firebase-realtime-database nosql

我们假设有一个博客,您希望列出今天,过去7天和过去30天内最受欢迎或分享的帖子。

今天的解决方案非常简单:

-mostSharedPostsForToday
   -2018-10-08
       -$postId
           -numberOfShares

然后,查询会针对今天由孩子mostSharedPostsForToday/2018-10-08订购的最多分享帖子观察numberOfShares

但是如何在过去n天内为最多共享帖子构建数据?

我能想到的一个解决方案是编写一个每天填充节点mostSharedPostsForThePastNDays的云功能。但这对我来说似乎很麻烦。是不是有更有效的方式?

编辑:正如第一个回答的评论所指出的那样,应该支持分页以节省流量。

1 个答案:

答案 0 :(得分:0)

我重新命令你使用另一种方法。不要将日期用作您的节点,请删除该节点并为每个帖子添加TIMESTAMP,如下所示:

-mostSharedPostsForToday
   -$postId
       - TIMESTAMP: 2018-10-08
       - numberOfShares: 10

要知道一天中有多少人共享,您需要使用以下代码:

rootRef.child("mostSharedPostsForToday").child(postId).orderByChild("TIMESTAMP").equalsTo("2018-10-08");

如果您想要间隔,请使用以下代码:

rootRef.child("mostSharedPostsForToday").child(postId).orderByChild("TIMESTAMP").startAt("2018-10-08").endAt("2018-10-15");

希望它有所帮助。