Я новичок, делаю свой ионный проект с Firebase Firestore.
Будет два типа клиентов: группа A и группа B.
.
Это приложение для социальных сетей, в котором люди из A могут дружить с людьми из B и наоборот, но не из одной группы.
Поскольку я запрашиваю данные для пользователя из группы A, в данных пользователя будут подключенные пользователи в группе B.
Итак, мой код выглядит следующим образом:
this.items = this.firestore.collection<Data>('a_users',ref => ref.where('UID','==',getUID()).valueChanges().map(
users => users[0].conn.map(conn_id => {
return this.firestore.collection<Data>('b_users', ref => ref.where('UID','==',conn_id)).valueChanges().map(b => b[0]);
})
)
Он вернет Observable<Observable<Data>[]>, но когда я попытался отобразить в ion-list в HTML с помощью канала async, результатом стал #undefined.
Цель состоит в том, чтобы правильно отобразить вышеуказанные данные (с немедленным ответом при изменении элемента) в ion-list.

Думаю, вам нужно дважды использовать асинхронный канал, чтобы отобразить изменение данных.
this.items = this.firestore.collection<Data>('a_users',ref => ref.where('UID','==',getUID()).valueChanges().map(
users =>users[0].conn.map(conn_id => {
return this.firestore.collection<Data>('b_users', ref => ref.where('UID','==',conn_id)).valueChanges().map(b => b[0]);
})
)
html
<ion-list *ngFor = "let user of users | async">
<strong> {user.props | async}</strong>
</ion-list>
так вы хотите сгладить users [0] .conn как массив наблюдаемых?
Нет, я хочу получить возвращаемое значение Observable<Data[]>.
обновил ответ, чтобы создать плоское наблюдаемое, менее эффективно в вашем случае использования imho
Вы можете попробовать разделить функции на две меньшие функции для отладки. 1-й запускаем с this.firestore.collection<Data>('a_users',ref => ref.where('UID','==',getUID()).valueChanges().map( users =>users[0].conn), посмотрим, получится ли результат.
Второй
mapнельзя заменить наflatMap, потому чтоusers[0].conn- нормальный массив.