Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 类型';可观察<;管理员[]>';必须有一个';[Symbol.iterator]()';方法返回一个迭代器_Angular_Google Cloud Firestore_Angularfire - Fatal编程技术网

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