如何在Firestore中查询基于时间戳字段的范围

时间:2019-11-07 17:26:32

标签: android firebase kotlin google-cloud-firestore

我在Firestore中有一个events表。这些事件是多个字段的一部分,它具有startDate

endDateTimestamps字段

我必须执行3种与此字段相关的查询。

  • 在特定时间[X]之后/等于开始的事件
  • 在特定时间[X]之前/等于结束的事件
  • 在一定时间范围内发生事件。 [-]

对于最后一个查询,我尝试过类似的操作:

Firebase.firestore.collection("events")
    .whereGreaterThanOrEqualTo("dateStart", dateStart)
    .whereLessThanOrEqualTo("dateEnd", dateEnd)
    .get()
    .addOnSuccessListener {
          if (it.isEmpty) {
             Logger.d("Empty")
          } else {
             Logger.d(it.documents)
          }
    }

(其中dateStart / dateEnd为Date()

问题是Firestore正在启动错误:

All where filters other than whereEqualTo() must be on the same field. But you have filters on 'dateStart' and 'dateEnd'

现在我被困住了。有没有一种方法可以做到这一点?

还是我只需要查询greaterless,然后在应用程序中得到结果过滤器时就进行查询?

0 个答案:

没有答案