【问题标题】:Flutter: query Firestore document by timestampFlutter:按时间戳查询 Firestore 文档
【发布时间】:2020-12-26 14:34:15
【问题描述】:

我正在尝试按时间戳字段(例如,在开始日期和结束日期之间)查询 Firestore 文档。 时间戳字段返回类似 Timestamp(seconds=1599170400, nanoseconds=0) 的内容。

我的应用中有一个 Unix 时间戳(以秒为单位),我想将其与之进行比较(使用 isLessThan:),但 Firestore 中的值显然在此 Timestamp 对象内。

我将如何比较这两个时间戳?

另一种方法是查询所有文档并在之后进行比较,但我想在查询本身中过滤文档。

【问题讨论】:

标签: flutter google-cloud-firestore


【解决方案1】:

要将数据库中的 Timestamp 与毫秒以来的纪元值进行比较,您可以基于该值创建 Timestamp 对象:

var timestamp = Timestamp.fromMillisecondsSinceEpoch(1599573193925);

然后您可以在查询中针对数据库中的值使用它:

Firestore.instance
.collection('items')
.orderBy('Timestamp', descending: true).startAt([timestamp])

或者(我常用的方法):

Firestore.instance
.collection('items')
.where("Timestamp", isGreaterThanOrEqualTo: timestamp)

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 2020-10-22
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2020-11-24
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多