我正在这样向收藏夹添加文档。
void addToDb() {
collectionReference.add({
'dateTime': FieldValue.serverTimestamp(),
});}
我正在尝试像这样在某个日期之后查询数据
Firestore.instance
.collection('items')
.orderBy('dateTime', descending: true).startAt([{'dateTime' : DateTime.parse('2019-03-13 16:49:42.044')}])
.snapshots(),
将降序设置为true时,我会取回所有文档。 当我设置为false时,我什么也不会回来。 两者都不是预期结果。
我在堆栈上看到一些说法,将日期时间转换为毫秒或unix。但是我正在使用servertimestamp,因为我不能相信客户端写时间戳。知道我如何使用servertimestamp查询日期时间范围吗?
答案 0 :(得分:0)
我无法真正解释为什么这样做,但这对我有用。
final startAtTimestamp = Timestamp.fromMillisecondsSinceEpoch(DateTime.parse('2019-03-13 16:49:42.044').millisecondsSinceEpoch);
Firestore.instance
.collection('items')
.orderBy('dateTime', descending: true).startAt([startAtTimestamp])
.snapshots()
答案 1 :(得分:0)
你也可以做如下操作,
Firestore.instance
.collection("driverListedRides")
.where("uid", isEqualTo: widget.uid.toString())
.where("status", isEqualTo: "active")
.where("date",
isGreaterThanOrEqualTo:
DateTime.now().toString().split(" ")[0].toString())
.orderBy("date", descending: true)
.orderBy("time", descending: false)