【发布时间】:2021-06-21 02:33:56
【问题描述】:
app.component.html 如您所见,我正在尝试通过 *ngFor
显示我的 firebase 项目的响应数据<div class="row">
<div class="col-md-3">
<h4 class="text-warning">All Employee Data</h4>
<div class="card" *ngFor="let item of employee">
<div class="card-body">
<div class="card-title">
Name: {{item.name}} // error-Property 'name' does not exist on type 'never'.
</div>
<div class="card-subtitle">
Age: {{item.age}} // error-Property 'name' does not exist on type 'never'.
</div>
<div class="card-text">
Address: {{item.address}} // same error here also
</div>
</div>
</div>
</div>
</div>
app.component.ts 如您所见,我正在尝试从 firesbase 项目中获取数据。
export class AppComponent implements OnInit {
title = 'App';
constructor( private _crudService:CrudService) {}
employee:[] = [];
employeeName: string = '';
employeeAge: number | undefined;
employeeAddress: string = '';
message: string ='';
ngOnInit(){
this._crudService.getAllEmployee().subscribe((data:any) =>{
this.employee = data.map((e:any) =>{ // here I'm storing res in empty array
return{
id: e.payload.doc.id,
name: e.payload.doc.data()['name'],
age: e.payload.doc.data()['age'],
address: e.payload.doc.data()['address']
}
});
console.log(this.employee);
});
}
crud.service.ts 如您所见,我正在发送获取员工数据的请求
getAllEmployee(){
return this.fireservice.collection('Employee').snapshotChanges();
}
【问题讨论】:
-
为什么你不在 ngOnInit 中使用
e.payload.doc.data.name而不是e.payload.doc.data()['name'] -
让我试试..如果它有效,提前谢谢你
-
不,伙计,它不起作用
-
您的代码是正确的,您可以检查来自 _crudService.getAllEmployee 的响应,或者您可以调试 `this.employee = data.map((e:any) =>{ return{ id: e.payload.doc.id,名称:e.payload.doc.data()['name'],年龄:e.payload.doc.data()['age'],地址:e.payload.doc。数据()['地址'] } }); `
-
是的,响应没有问题,我收到这样的响应。地址:“艾哈迈达巴德”年龄:21 id:“xS0Uz0eXCNyb4YciVadj”名称:“harsh”
标签: angular typescript firebase google-cloud-firestore