类型{}上不存在属性>> [

问题描述 投票:0回答:2
我正在尝试使用snapshotChanges从Firebase数据库获取对象列表。

Angular版本:7.2.0,Firebase版本:5.8.1,RxJS版本:6.3.3,AngularFire2:5.1.1

我的代码如下:

this.fbSubs.push(this.db .collection('availableExercises') .snapshotChanges() .pipe( map(docArray => { return docArray.map(doc => { return { idExercise: doc.payload.doc.id, name: doc.payload.doc.data().name, duration: doc.payload.doc.data().duration, calories: doc.payload.doc.data().calories }; }); }) ) .subscribe((exercises: Exercise[]) => { // code... }, error => { // code... }));

当我尝试编译此代码时,出现以下错误:

ERROR in src/app/training/training.service.ts(41,44): error TS2339: Property 'name' does not exist on type '{}'. src/app/training/training.service.ts(42,48): error TS2339: Property 'duration' does not exist on type '{}'. src/app/training/training.service.ts(43,48): error TS2339: Property 'calories' does not exist on type '{}'.

我相信该语法可能与RxJS的早期版本相比已经过时,但是我似乎无法解决需要更改的内容。 

我正在尝试使用snapshotChanges从Firebase数据库获取对象列表。 Angular版本:7.2.0,Firebase版本:5.8.1,RxJS版本:6.3.3,AngularFire2:5.1.1我的代码如下:...

angularfire2 angular7 rxjs6
2个回答
2
投票
所以我不得不稍微更改.pipe.map()中的代码以将数据返回为“ Exercise”,如下所示:

0
投票
.pipe( map(docArray => { return docArray.map(doc => { return { id: doc.payload.doc.id, ...doc.payload.doc.data() as Exercise }; }); }) )
© www.soinside.com 2019 - 2024. All rights reserved.