Flutter:按时间戳查询 Firestore 文档
Posted
技术标签:
【中文标题】Flutter:按时间戳查询 Firestore 文档【英文标题】:Flutter: query Firestore document by timestamp 【发布时间】:2020-12-26 14:34:15 【问题描述】:我正在尝试按时间戳字段(例如,在开始日期和结束日期之间)查询 Firestore 文档。
时间戳字段返回类似 Timestamp(seconds=1599170400, nanoseconds=0)
的内容。
我的应用中有一个 Unix 时间戳(以秒为单位),我想将其与之进行比较(使用 isLessThan:),但 Firestore 中的值显然在此 Timestamp 对象内。
我将如何比较这两个时间戳?
另一种方法是查询所有文档并在之后进行比较,但我想在查询本身中过滤文档。
【问题讨论】:
这能回答你的问题吗? Firestore query by date range 万一有人在这里挣扎是解决方案***.com/questions/54014679/… 【参考方案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)
【讨论】:
以上是关于Flutter:按时间戳查询 Firestore 文档的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter 中显示两个 Firestore 时间戳值之间的差异
如何从 Flutter 将文档创建时间戳添加到 Firestore [重复]