我正在尝试从Firestore获取两个选定日期之间的订单,但问题是我的查询始终返回0个快照/文档。
我使用LocalDate
类是因为我有一个JavaFX程序,并且日期选择器也返回LocalDate。我知道Firestore正在使用其时间戳,但是我不确定如何正确将LocalDate转换为Firestore时间戳。使用java.sql.Timestamp进行了尝试,但是它不起作用。有什么建议?
private static LocalDate dateFrom, dateTo;
//...//
Query query = null;
if (dateTo == null) {
dateTo = LocalDate.now();
Timestamp timeTo = Timestamp.valueOf(dateTo.atStartOfDay());
Timestamp timeFrom = Timestamp.valueOf(dateFrom.atStartOfDay());
query = orderRef.whereLessThanOrEqualTo("orderTimestamp", timeTo).whereGreaterThan("orderTimestamp", timeFrom);
} else if (dateTo.equals(dateFrom)) {
Timestamp timeFrom = Timestamp.valueOf(dateFrom.atStartOfDay());
query = orderRef.whereEqualTo("orderTimestamp", timeFrom);
} else {
Timestamp timeTo = Timestamp.valueOf(dateTo.atStartOfDay());
Timestamp timeFrom = Timestamp.valueOf(dateFrom.atStartOfDay());
query = orderRef.whereLessThanOrEqualTo("orderTimestamp", timeTo).whereGreaterThan("orderTimestamp", timeFrom);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句