【问题标题】:RXjs groupBy - Group AngularFire Firestore collectionRXjs groupBy - 组 AngularFire Firestore 集合
【发布时间】:2018-06-19 18:55:50
【问题描述】:

我正在尝试按字段对 AngularFire Firestore 集合 (Observable[]) 进行分组,例如 userId

我有一个项目集合,每个项目都有不同的 userId 值,我需要将它们分组到一个多维数组中。所以,转换..

[ 
  {userID:1, color:'blue' }, 
  {userId:2, color:'green'}, 
  {userId:1, color:'orange'}
]

进入

[ 
  [
   {userID:1, color:'blue' }, 
   {userId:1, color:'orange'}
  ],
  [
   {userId:2, color:'green'}
  ]
]

我对 RxJs 完全陌生,我知道 groupBy 运算符在创建 Observable.of(itemsArray) 时是如何工作的,但我看不出如何让它与从 AgularFire 返回的 Observable 一起工作

let items:Observable[] = this.afs.collection<Item>('items')
  .snapshotChanges()
  .groupBy( item => item.userId ); //item is actually the array

看起来AngularFire 返回一个Observable,它发出整个数组,而不是每个元素。

如果我map它,那么我不是只有数组中的每个项目,并且不能使用groupBy吗?

关于如何按上述返回Observable 分组数组数组的任何指针?

【问题讨论】:

    标签: javascript firebase rxjs angularfire2 google-cloud-firestore


    【解决方案1】:

    您可以简单地将您的可观察数组转换为可观察数组的值:

    myObservable.flatMap(arr => Rx.Observable.from(arr));
    

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 1970-01-01
      • 2019-10-03
      • 2019-11-13
      • 2018-07-01
      • 2021-08-23
      • 2019-05-12
      • 2018-10-09
      • 2021-11-25
      相关资源
      最近更新 更多