Android端Firebase如何按时间戳过滤结果?博客APP时间筛选咨询
解决Firebase Firestore按时间过滤并降序获取帖子的问题
嘿,我来帮你搞定这个时间过滤的问题!你想要获取时间戳小于当前时间的新闻帖子,同时按最新的排在最前面,其实只需要在你的查询里加上一个whereLessThanOrEqualTo(或者whereLessThan,取决于你是否要包含刚好等于当前时间戳的内容)条件就行。
完整代码示例
FirebaseFirestore.getInstance().collection("news") .orderBy("timestamp", Query.Direction.DESCENDING) .whereLessThanOrEqualTo("timestamp", Timestamp.now()) // 过滤出时间戳≤当前时间的帖子 .limit(2) .get()
细节说明:
- 如果你的帖子有定时发布的需求(比如设置了未来的timestamp),这个条件会自动过滤掉还没到发布时间的内容,只返回已经可以展示的帖子。
- 如果你不想包含刚好等于当前时间的帖子,把
whereLessThanOrEqualTo换成whereLessThan就可以了。 - 注意:Firestore要求同时使用
orderBy和where时需要创建复合索引。第一次运行这个查询时,控制台会抛出一个包含索引创建链接的错误,直接点击链接就能自动生成所需的索引,非常简单。
内容的提问来源于stack exchange,提问作者user13871738
相关产品推荐
相关产品推荐

