RXjs groupBy - Group AngularFire Firestore集合

时间:2018-01-10 15:00:27

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

我正在尝试按字段AngularFireuserId Firestore集合(Observable [])进行分组。

我有一组项目,每个项目都有不同的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)运算符的工作原理,但我看不出如何使用ObservableAgularFire

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

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

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

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

1 个答案:

答案 0 :(得分:0)

你可以简单地将你的数组的observable转换为数组值的observable:

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