我正在尝试通过时间戳字段(例如,开始日期和结束日期之间)查询Firestore文档。
时间戳字段返回类似Timestamp(seconds=1599170400, nanoseconds=0)
的内容。
我的应用程序中有一个Unix时间戳(以秒为单位),我想将其与之比较(使用 isLessThan:),但是Firestore中的值显然在此Timestamp对象内。
我该如何比较这两个时间戳?
一种替代方法是查询所有文档,然后进行比较,但是我想在查询本身中过滤文档。
答案 0 :(得分: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)