来自AngularFireDatabase.list的Observable的GroupBy无法正常运行

时间:2019-01-14 05:56:23

标签: angular rxjs angularfire2 angularfire

根据AngularFireDatabase.list("expenses").snapshotchanges(...)创建的可观察对象,我无法对RxJs运算符进行分组

我的firebase数据库具有以下节点

费用

|_exp-1
    |_ amount:200
    |_ category:"cat-1"
    |_ date: "2018-06-18T19:00:00.000Z"

|_exp-2
    |_ amount:400
    |_ category:"cat-2"
    |_ date: "2018-06-18T19:00:00.000Z"

|_exp-3

    |_ amount:500
    |_ category:"cat-2"
    |_ date: "2018-06-18T19:00:00.000Z"

|_exp-4
    |_ amount:200
    |_ category:"cat-3"
    |_ date: "2018-06-18T19:00:00.000Z"

我正在使用getExpenses()函数获取数据。 我正在尝试对groupExpensesbyCategory()中此函数的可观察结果进行分组。 但是我在data.category

上遇到错误
"Property 'category' does not exist on type 'any[]'. [2339]"

我的getExpenses()函数按预期工作,并返回了一个由4个费用对象组成的数组的可观察对象。

为什么groupBy无法在我的观察值上工作。请帮忙。

getExpenses():Observable<any[]>{
return this.db.list('expenses')
.snapshotChanges().pipe(
  map(changes => 
    changes.map(c => ({ key: c.payload.key, ...c.payload.val()}))
  )
);
}

groupExpensesbyCategory():Observable<any[]>{

return this.getExpenses().pipe(
  groupBy(data=>data.category),
  mergeMap(group=>group.pipe(toArray()))
);
}

编辑:

根据评论的要求,我将添加

结果的屏幕截图
this.getExpenses().subscribe(console.log)

Result of getExpenses()

0 个答案:

没有答案