【发布时间】:2019-08-29 19:03:14
【问题描述】:
我正在尝试从 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);
}
【问题讨论】:
-
请将您的数据库结构添加为截图。
-
@AlexMamo prntscr.com/ozjfqd
标签: java android firebase google-cloud-firestore