在查询中使用Firestore多个日期等于时不返回文档

时间:2020-10-13 20:14:51

标签: java android google-cloud-firestore

所以我正在努力使以下查询起作用:

firebaseFirestore.collection("kids")
            .document(documentID)
            .collection("books")
            .whereEqualTo("accountID", accountID)
            .whereEqualTo("checkoutDate", epochDate)
            .whereGreaterThanOrEqualTo("checkoutDate", firstDayThisWeekDate)
            .orderBy("checkoutDate")
            .orderBy("startTime", Query.Direction.ASCENDING)
            .orderBy("lengthOfTime", Query.Direction.DESCENDING);

epochDate是设置为01/01/1970的日期对象 firstDayThisWeekDate是一个日期对象,它引用了本周第一天(星期日)的日历日期。

如果我只有两个checkoutDate等式之一,则查询有效。但是,如果将两者结合起来,结果将为零。我想念什么?

这有效!

firebaseFirestore.collection("kids")
            .document(documentID)
            .collection("books")
            .whereEqualTo("accountID", accountID)
            .whereEqualTo("checkoutDate", epochDate)
            .orderBy("checkoutDate")
            .orderBy("startTime", Query.Direction.ASCENDING)
            .orderBy("lengthOfTime", Query.Direction.DESCENDING);

这有效!

firebaseFirestore.collection("kids")
            .document(documentID)
            .collection("books")
            .whereEqualTo("accountID", accountID)
            .whereGreaterThanOrEqualTo("checkoutDate", firstDayThisWeekDate)
            .orderBy("checkoutDate")
            .orderBy("startTime", Query.Direction.ASCENDING)
            .orderBy("lengthOfTime", Query.Direction.DESCENDING);

这是我为图书文档准备的方案。 如果字段:“ repeats”为true,则checkoutDate始终为epochDate 如果字段“ repeats”为假,则日期将比epochDate大。

我的目标是能够获取epochDate文档以及日期在本周第一天或之后的任何文档。

我正在努力在一个查询中完成此操作,并且我认为可以。我只是无法协调两个日期的比较。看来文档似乎说可以。

任何帮助将不胜感激。

0 个答案:

没有答案