获取当前 uid 的 firebase 数据库返回未定义 [英] Get firebase database of current uid returns undefined

查看:22
本文介绍了获取当前 uid 的 firebase 数据库返回未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个页面来检索用户的信息,但我没有定义.

I have a page to a retrieve user's information, but I am getting undefined.

下面是我的数据结构

{
  "posts" : {
    "-L4QKxs6d06Vq3amQ7C8" : {
      "content" : "Test",
      "owner" : "D5hkgRIN87OUr3rdSGK1Znws1aB2",
      "title" : "Admin Post"
    },
    "-L4UDg1_glHcqwGjGpTQ" : {
      "content" : "fsdfd",
      "owner" : "D5hkgRIN87OUr3rdSGK1Znws1aB2",
      "title" : "rewsrwr"
    }
  },
  "users" : {
    "D5hkgRIN87OUr3rdSGK1Znws1aB2" : {
      "posts" : {
        "-L4QKxs6d06Vq3amQ7C8" : {
          "title" : "Admin post"
        },
        "-L4UDg1_glHcqwGjGpTQ" : {
          "title" : "rewsrwr"
        },
        "-L4UDj1vKnTpogjZ26Zg" : {
          "title" : "sdfsdf"
        }
      },
      "role" : "0",
      "username" : "Admin"
    }
  }
}

profile.ts

export class ProfilePage {
  currentUser = firebase.auth().currentUser;
  user: Observable<User[]>;

  constructor(public navCtrl: NavController, private db: AngularFireDatabase) {
    this.user = this.db.list(`/users/${this.currentUser.uid}`).snapshotChanges()
    .map(actions => {
      return actions.map(action => {
        return { key: action.key, ...action.payload.val() };
      });
    });
    console.log(this.user.username);
  }

}

  • "angularfire2": "5.0.0-rc.4",
  • "firebase": "4.8.2",
  • 我在这里做错了吗?

    推荐答案

    我终于想通了!从 angularfire2 issue#396

    profile.ts

    export class ProfilePage {
      currentUser = firebase.auth().currentUser;
      user: any;
    
      constructor(public navCtrl: NavController, private db: AngularFireDatabase) {
        this.db.list(`/users/${this.currentUser.uid}`).snapshotChanges().subscribe(user => {
          this.user = user.payload.val();
      }
        console.log(this.user.username);
      }
    

    这篇关于获取当前 uid 的 firebase 数据库返回未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆