FireBase фильтровать документы с коллекциями - PullRequest
0 голосов
/ 29 октября 2018

Я работаю с приложением Angular 6 и базой данных Firebase. Мне интересно, как отфильтровать только те документы из базы данных, в которых есть определенные коллекции.

Для уточнения: у нас есть коллекция под названием «В ожидании». Эта коллекция имеет кучу документов. Под некоторыми этих документов имеется еще одна коллекция, которая называется «Приглашает». Все остальные документы не имеют этой коллекции. Я хочу получить только те документы в разделе «В ожидании», в которых есть коллекция «Приглашения».

Я придумал это:

const docsWithInvites = [];
this.firestoreService.col('Pending').ref.get().then(p => {
  p.docs.forEach(d => {
    this.firestoreService.col(`Pending/${d.id}/Invites`).ref.get().then(i => {
      if (i.size > 0)
      {
        docsWithInvites.push(d);
      }
    });
  });
});

Но это кажется слишком сложным и неэффективным. Должен быть способ фильтрации документов с коллекцией Invites под ними только одним запросом. Что-то вроде:

This.firestroeService.col («В ожидании»). Где (/ Приглашения существуют /);

Есть ли способ сделать это?

...