如果查询中存在不等式过滤器,则使用FieldPath.documentId()(等于)将引发“在多个属性上不能具有不等式过滤器”

时间:2019-03-30 23:27:42

标签: java android google-cloud-firestore

查询

FirebaseFirestore.getInstance().collection("my_collection")
                    .whereEqualTo(FieldPath.documentId(), docId)
                    .whereEqualTo("int_field", intValue)
                    .whereGreaterThanOrEqualTo("another_int_field", anotherIntValue);

抛出

"INVALID_ARGUMENT: Cannot have inequality filters on multiple properties: another_int_field"

如果我删除了documentId的过滤条件,它会起作用:

FirebaseFirestore.getInstance().collection("my_collection")
                    .whereEqualTo("int_field", intValue)
                    .whereGreaterThanOrEqualTo("another_int_field", anotherIntValue);

如果我删除了another_int_field的过滤条件,它也可以工作:

FirebaseFirestore.getInstance().collection("my_collection")
                    .whereEqualTo(FieldPath.documentId(), docId)
                    .whereEqualTo("int_field", intValue);

我的看法,whereEqualTo(FieldPath.documentId(), docId) 被视为不等式过滤器,但在错误报告时被忽略。

为什么?怎么样?我想念什么?

0 个答案:

没有答案