我是初学者,正在Firebase Firestore进行Ionic项目。
客户将分为两种类型:组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
中正确显示以上数据(当项目更改时立即显示)。
答案 0 :(得分:0)
认为您必须使用两次异步管道才能映射到数据更改
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>