Неожиданное поведение контейнера-массива GCP Firestore - PullRequest
0 голосов
/ 30 сентября 2019

Выполнение составного запроса к коллекции Firestore с использованием array-contains, как указано в документации здесь :

Вот мой запрос:

db.collection(COLLECTION_NAME)
  .where('organization.id', '==', orgId)
  .where('type', '==', type)
  .where('employeeIds', 'array-contains', employeeId)
  .get()

Это будетне вернуть матч. Знаете ли вы, что array-contains можно использовать только в одиночку, а не с другими AND фильтрами?

Существует мало четкой документации и примеров по этому вопросу.

Best

1 Ответ

1 голос
/ 30 сентября 2019

Это не вернет совпадение. Знаете ли вы, что содержимое массива можно использовать только отдельно, а не с другими фильтрами AND?

Нет ничего плохого в объединении array-contains с другими операторами равенства ==. Вы можете использовать только один раз array-contains, но вы можете связать столько функций равенства, сколько захотите. Ваш запрос должен прекрасно работать, если ваши db.collection(COLLECTION_NAME) указывают на правильные места, а orgId, type и employeeId содержат правильное значение. Более того, в большинстве случаев такой запрос не работает, потому что многие разработчики пытаются упорядочить результаты. В таких случаях помните, что требуется index .

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