仅允许数组和可迭代

时间:2019-10-29 12:24:59

标签: angular firebase firebase-realtime-database

我无法在html页上检索地址表的详细信息。我有一个错误:错误错误:“尝试与'[对象对象]进行比较时出错”。仅允许使用数组和可迭代的对象“ 控制台会显示要恢复的项目,但无法检索页面

Console image

服务地址

 adresses: Adresse [] = [];
  adresseSubject = new Subject<Adresse[]>();

  constructor() { }

  emitAdresse(){
    this.adresseSubject.next(this.adresses);
  }


  getAdresse(){
    firebase.database().ref('adresse/' + firebase.auth().currentUser.uid )
      .on('value', (data)=>{
        this.adresses = data.val() ? data.val() : [];
        console.log();
        this.emitAdresse();
      });
  }

第ts页

 adresses : Adresse[];
  adresseSubscription: Subscription;

  constructor(private adresseService: AdresseService,  private router: Router) {}

  ngOnInit(){
    this.adresseSubscription = this.adresseService.adresseSubject.subscribe(
      (adresses: Adresse[]) => {
        this.adresses = adresses;
      }
    );
    this.adresseService.getAdresse();
    this.adresseService.emitAdresse();
  }

html

 <ion-card *ngFor="let adresse of adresses; let i = index" (click)="onViewAdresse(i)">
        <ion-card-content>
            <ion-row>
                <ion-col size="9" >
                        <!--<ion-col size="9" (click)="goTo(adress)">-->
                    <div><b>{{adresse.prenom}} {{adresse.nom}} </b></div>
                    <div>{{adresse.commune}}</div>
                    <div>{{adresse.numeroF}}</div>

                </ion-col>
                <ion-col size="3">
                    <div class="color-edit"><b>Modifier</b></div>
                </ion-col>
              </ion-row>
          </ion-card-content>
      </ion-card>

谢谢

1 个答案:

答案 0 :(得分:1)

使用空数组初始化adressesngFor与数组一起使用,直到订阅了adresse,并且您的代码中未定义adresses

尝试这样:

adresses : Adresse[] = []