数据未显示在视图中

时间:2017-05-11 19:45:41

标签: angularjs firebase firebase-realtime-database promise ionic2

作为一名学生,我目前仍在努力创建以下内容:

我在我的sidemenu(基于sidemenu模板)中有一个profilepicture&我要与firebase数据库中的数据交换的displayname。

我有以下代码:

  1. App.html

    <img id="profile-image" src="assets/profile/{{ photoURL }}" alt="{{ displayName }}"/>
    <div id="profile-name" text-center class="width-full">{{ displayName }}</div>
    
  2. App.component.ts

    var displayName;
    var photoURL;
    
    export class MyApp  
    {  
    
    constructor()  
    {       
         this.setUserData();
    

    }

    setUserData来()
          {
        this.uid = firebase.auth()。currentUser.uid;

    console.log("UID: "+ this.uid);
    
    let ref = firebase.database().ref('/userProfile').child(this.uid);
    
    ref.once('value', function(snapshot)
    {
      //CALLBACK
      var key = snapshot.key;
      var em = snapshot.child("/email").val();
      var nm = snapshot.child("/name").val();
      var dpn = snapshot.child("/displayName").val();
      var pURL = snapshot.child("/photoURL").val();
    
      //LOG
      console.log("KEY: "+key);
      console.log("NAME: "+nm);
      console.log("DISPLAYNAME: "+dpn);
      console.log("EMAIL: "+em);
      console.log("PHOTOURL: "+pURL);
    
      displayName = dpn;
      photoURL = pURL;
    
    }, function(error)
    {
      // The callback failed.
      console.error(error);
    });
    
  3. 在我的控制台中,我看到UID正在加载,正在获取正确的数据, 但我似乎无法得到我的观点的结果?它只是空着。

    有人可以解释我缺少什么或我应该做什么吗?

    提前致谢!

1 个答案:

答案 0 :(得分:0)

你应该在类中声明变量,

export class MyApp{
 displayName :string;
 photoURL :string;