У меня есть коллекция, документы которой имеют свойство массива members
, которое содержит идентификаторы пользователей. Мне нужно найти документы, члены которых являются парой идентификаторов пользователей, например:
Из документы для составных запросов я вижу, как сделать OR
, но мне нужен AND
, потому что мне нужны документы, содержащие оба идентификатора пользователя (что на самом деле делает do c уникальным ). В документах говорится, что
you can include at most one array-contains or array-contains-any clause in a compound query
, поэтому следующий код не работает (я проверял и на самом деле возвращает ошибку):
const conversation = await firebaseDb.collection(collectionName)
.where('members', 'array-contains', userId)
.where('members', 'array-contains', otherUserId)
.get();
Я тоже пробовал:
const conversation = await firebaseDb.collection(collectionName)
.where('members', 'array-contains', [userId, otherUserId])
.get();
но ничего не возвращает.
Действительно ли возможно выполнить логическое AND
для значений массива в Firestore do c?