You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Kotlin中如何获取Firebase查询所需的系统当前时间戳?

获取Firebase分页查询所需的系统当前时间戳

嘿,我来帮你搞定这个问题!在Firebase Firestore里获取适合分页查询的时间戳,有两种实用的方式,其中第一种是官方推荐的最优解:

1. 使用Firebase服务器时间戳(推荐)

如果你的news集合里的timestamp字段是用Firebase提供的服务器时间设置的(比如存数据时用FieldValue.serverTimestamp()),那查询时也用这个方法获取时间戳是最靠谱的——它会直接调用Firebase服务器的当前时间,完全避免客户端本地时间不准的问题,非常适合分页这种对时间一致性要求高的场景。

修改后的代码如下:

import com.google.firebase.firestore.FieldValue;
// ...
FirebaseFirestore.getInstance().collection("news")
    .orderBy("timestamp", Query.Direction.DESCENDING)
    .startAfter(FieldValue.serverTimestamp()) // 这里替换成服务器时间戳
    .limit(4)
    .get()

2. 使用客户端本地时间戳(不推荐用于分页)

如果特殊场景下你确实需要用设备本地的当前时间,可以用Java自带的System.currentTimeMillis(),它会返回当前设备的毫秒级时间戳。但要注意:客户端的本地时间可能被用户修改,导致查询结果不准确,所以不建议用在分页查询里。

示例代码:

long localTimestamp = System.currentTimeMillis();
FirebaseFirestore.getInstance().collection("news")
    .orderBy("timestamp", Query.Direction.DESCENDING)
    .startAfter(localTimestamp)
    .limit(4)
    .get()

总结一下,优先选第一种服务器时间戳的方式,能保证你的分页查询逻辑稳定可靠~

内容的提问来源于stack exchange,提问作者user13871738

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:02:44