Использование FieldPath.documentId () (equals) выдает «Нельзя использовать фильтры неравенства для нескольких свойств», если в запросе присутствует фильтр неравенства - PullRequest
0 голосов
/ 31 марта 2019

Запрос

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) обрабатывается так, как если бы это был фильтр неравенства, но игнорируется при сообщении об ошибках.

Почему? Как? Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...