Firestore: Разве мы не можем использовать orderBy для поля, отфильтрованного с помощью whereIn? - PullRequest
0 голосов
/ 05 апреля 2020

Я получаю эту ошибку при выводе в orderBy поля, которое я отфильтровал с помощью whereIn(field,Array):

FirebaseFirestoreException: INVALID_ARGUMENT: Order by clause cannot contain a field with an equality filter

Но знака равенства нет; между равенствами есть ИЛИ, например field = "xx" ИЛИ field = "yy" ИЛИ field = "zz".

Что делает разумным стремление к порядку по полю.

Разве не возможно использовать orderBy с whereIn на том же поле ??

1 Ответ

0 голосов
/ 06 апреля 2020

whereIn (также известный как массив-содержит) - это фактически логическое ИЛИ нескольких значений, проверенных на равенство. Как вы можете видеть из документации (выделено мной):

Используйте оператор in, чтобы объединить до 10 равенство (==) предложения в том же поле с логическим ИЛИ. Запрос in возвращает документы, в которых данное поле соответствует любому из значений сравнения.

Итак, где In следует рассматривать как фильтр равенство . Сообщение об ошибке может быть яснее об этом, но я подозреваю, что оно осталось с того времени, когда в Firestore не было оператора in.

Чтобы ответить на вопрос, нет, это невозможно.

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