Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android firebase筛选器的未知异常_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Android firebase筛选器的未知异常

Android firebase筛选器的未知异常,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,此代码: var query: Query = store.collection(COLLECTION_USERS) query = query.whereGreaterThanOrEqualTo("age", filter.startAge).whereLessThanOrEqualTo("age", filter.endAge) query = query.whereGreaterThanOrEqualTo("start_date", filter.start

此代码:

var query: Query = store.collection(COLLECTION_USERS)
        query = query.whereGreaterThanOrEqualTo("age", filter.startAge).whereLessThanOrEqualTo("age", filter.endAge)
        query = query.whereGreaterThanOrEqualTo("start_date", filter.startDate).whereLessThanOrEqualTo("end_date", filter.endDate)
        query = query.whereEqualTo("sex", filter.sex)
        return query.get()
抛出异常:
java.lang.IllegalArgumentException:除whereEqualTo()之外的所有where筛选器必须位于同一字段上。但是您在“年龄”和“开始日期”上有过滤器
如何修复?

说不同字段上的范围过滤器是禁止的。因此Firestore允许链接多个
where()
方法来创建更具体的查询,但只能在同一字段上

要实现所需的功能,需要查询数据库两次,每次查询一次,因为不能在同一查询中同时使用这两种方法


另一种方法是存储一个可能适合查询的特殊标志,尽管在现实世界的应用程序中,几乎不可能存储用户可能查询数据的每一种方式。

我写的是相同的答案,它仅限于查询不同字段上的多个位置。