根据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)