如何将可观察数据数组的可观察值转换为可观察数据数组

时间:2019-01-09 19:17:45

标签: firebase ionic-framework ionic3 rxjs google-cloud-firestore

我是初学者,正在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中正确显示以上数据(当项目更改时立即显示)。

1 个答案:

答案 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>