Ionic 2 + Firebase - 加载userdata需要30-60秒

时间:2017-02-11 11:09:58

标签: angular firebase firebase-realtime-database ionic2 firebase-authentication

我正在构建一个Ionic 2 + Firebase应用程序,但现在我被困了一段时间。我无法确定这个问题。

我正在从firebase加载数据。在控制台上,我可以看到它工作正常(加载时间最长1秒)。

但是,数据在应用UI上显示最多需要60秒。

使用userdata here找到控制台输出。

代码:

HTML:

<ion-content padding>
    <ion-list>
        <ion-item *ngFor="let item of items">
            <h2>{{item?.birthDate}}</h2>
            <p>Ticket: <strong>{{item?.username}}</strong></p>
            <p>Date: <strong>{{item?.email}}</strong></p>
        </ion-item>
    </ion-list>
</ion-content>

profile.ts:

  ionViewDidEnter() {
    this.authData.getUserProfile().on('value', snapshot => {
      let rawList = [];
      rawList.push({
        birthDate: snapshot.val().birthDate,
        email: snapshot.val().email,
        gender: snapshot.val().gender,
        password: snapshot.val().password,
        phone: snapshot.val().phone,
        username: snapshot.val().username,
        weight: snapshot.val().weight
      });
      this.items = rawList;
      console.log(this.items);
      console.log(rawList);
    });

  }

身份验证服务:

  public userProfileData: any;
  public currentUser: any;

  constructor(public af: AngularFire) {
    af.auth.subscribe(user => {
      if (user) {
        this.currentUser = firebase.auth().currentUser.uid;
        this.fireAuth = user.auth;
        this.userProfileData = firebase.database().ref(`users/${this.currentUser}/`);
      }
    });
  }
  getUserProfile(): any {
    return this.userProfileData;
  }

1 个答案:

答案 0 :(得分:1)

我建议你尝试新的语法。我可以给你一个很好的例子,我想你会帮助你很多。

https://github.com/javebratt/event-tutorial

看看这个