我们假设有一个博客,您希望列出今天,过去7天和过去30天内最受欢迎或分享的帖子。
今天的解决方案非常简单:
-mostSharedPostsForToday
-2018-10-08
-$postId
-numberOfShares
然后,查询会针对今天由孩子mostSharedPostsForToday/2018-10-08
订购的最多分享帖子观察numberOfShares
。
但是如何在过去n天内为最多共享帖子构建数据?
我能想到的一个解决方案是编写一个每天填充节点mostSharedPostsForThePastNDays
的云功能。但这对我来说似乎很麻烦。是不是有更有效的方式?
编辑:正如第一个回答的评论所指出的那样,应该支持分页以节省流量。
答案 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");
希望它有所帮助。