Добро пожаловать в Stackoverflow!
Чтобы получить данные коллекций с помощью вложенной коллекции, вы можете легко вернуть их, используя код, подобный следующему: db.collection('users').doc('<user>').collection('Recipes').get()
. Используя это, он вернет документ с вложенной коллекцией для каждого пользователя.
Однако нет никакого способа собрать вложенные коллекции вместе со всеми документами одновременно. Но есть хороший обходной путь, доступный здесь , который для вашего случая будет выглядеть примерно так:
this.firestoreService.colWithIds$('users').pipe(
switchMap((users: any[]) => {
const us = users.map((r: any) => {
return this.firestoreService
.col$(`users/${r.id}/recipes`)
.pipe(
map(recipes => Object.assign(user, {recipes}))
);
});
return combineLatest(...us);
})
).subscribe(users => console.log(users);
Пока я не тестировал этот код , я считаю, что это хорошая отправная точка для вас, так как этот код получает значения users
, сопоставленные с наблюдаемыми его подколлекциями. Однако эти значения Recipes
отображаются обратно в значения user
, а данные подгруппы Recipes
содержатся в качестве нового свойства.
Дайте мне знать, помогла ли вам эта информация!