Запрос коллекции Firestore для членства Property данного массива - PullRequest
0 голосов
/ 24 октября 2018

Скажем, у меня есть массив со значениями

types = ['jay', 'pigeon', 'crow', 'peacock']

, который я хотел бы использовать для выполнения запроса к коллекции Firestore birds в зависимости от того, содержится ли свойство документа type вэто.

Так что из

groaney: {
  ...
  type: 'crow'
  ...
},
chirpie: {
  ...
  type: 'chick'
  ...
},
jeery: {
  ...
  type: 'jay'
  ...
}

мы должны получить

groaney: {
  ...
  type: 'crow'
  ...
},
jeery: {
  ...
  type: 'jay'
  ...
}

Я понимаю, что мог бы сделать запрос для отдельных элементов отдельно

Promise.all(
  types.map(t =>
    firebase.firestore().collection('birds')
      .where('type', '==', t)
      .get()
  )
)

и затем объедините результаты.Тем не менее, я бы предпочел сделать это одним махом, используя один where(), так как выполнение Promise.all() на куче коллекций пожарных хранилищ where выглядит для меня пустой тратой ресурсов.

Есть ли элегантный / эффективный способ добиться этого?

(В заключение отметим, что когда дело доходит до обратной задачи, то есть запроса к коллекции для членства в массиве одного значения, мы имеем where('types', 'array-contains', type) на помощь.)

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