获取当前 uid 的 firebase 数据库返回未定义 [英] Get firebase database of current uid returns undefined
本文介绍了获取当前 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屋!
查看全文