Angular 类型';可观察<;管理员[]>';必须有一个';[Symbol.iterator]()';方法返回一个迭代器
这是我的管理界面Angular 类型';可观察<;管理员[]>';必须有一个';[Symbol.iterator]()';方法返回一个迭代器,angular,google-cloud-firestore,angularfire,Angular,Google Cloud Firestore,Angularfire,这是我的管理界面 export interface Admin{ name: string; email: string; telephone: string; address: string; nic: string; } 这是我的构造函数 constructor( private afs: AngularFirestore, private admins: Observable<Admin[]>, private adminDoc
export interface Admin{
name: string;
email: string;
telephone: string;
address: string;
nic: string;
}
这是我的构造函数
constructor(
private afs: AngularFirestore,
private admins: Observable<Admin[]>,
private adminDoc: AngularFirestoreCollection<Admin>
){
this.adminDoc = this.afs.collection<Admin>('users/user/admin');
this.admins = this.adminDoc.snapshotChanges().pipe(
map(actions => actions.map(a=>{
var data = a.payload.doc.data() as Admin;
const id = a.payload.doc.id;
return {id,...data}
}))
);
}
如何解决此问题?this.admins现在是一个可观察对象,您不能对可观察对象进行迭代,您必须订阅它。或将循环逻辑的
移动到内部:
map(actions => actions.map(a=>{
var data = a.payload.doc.data() as Admin;
const id = a.payload.doc.id;
//====> you have access to all items of here
return {id,...data}
}))
或者像这样订阅:
this.admins.subscribe(admins=>console.log(admins))代码>this.admins现在是一个可观察对象,您不能在可观察对象上迭代,您必须订阅它。或将
循环逻辑的移动到内部:
map(actions => actions.map(a=>{
var data = a.payload.doc.data() as Admin;
const id = a.payload.doc.id;
//====> you have access to all items of here
return {id,...data}
}))
或者像这样订阅:
this.admins.subscribe(admins=>console.log(admins))代码>