繁体   English   中英

RXjs groupBy-组AngularFire Firestore集合

[英]RXjs groupBy - Group AngularFire Firestore collection

我正在尝试按一个字段将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 ,它作为一个整体而不是每个元素发出Array。

如果我map它,那么我不就将数组中的每个项目都包含了,并且不能使用groupBy吗?

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

您可以使用以下命令将数组的可观察值简单地转换为数组值的可观察值:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM