Я работаю с приложением 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 («В ожидании»). Где (/ Приглашения существуют /);
Есть ли способ сделать это?