下面我有一个注册码。这来自previous question我在创建帐户时向用户的表添加数据。代码如下:
signup(){
firebase.auth().createUserWithEmailAndPassword(useremail, userpassword)
.then(function(response) {
var updates = {};
updates['/users/' + response.uid] = { email: useremail, password: userpassword, net_worth : 5000, username : 'Roy' };
firebase.database().ref().update(updates);
});
}
要清楚,我的架构应该类似于:
email|''
password|''
username|'Roy'
net_worth|'5000'
现在,我想检索此信息并将其放在我的配置文件组件中,这次检索该数据。目前我所拥有的是以下内容:
个人资料组件
export class ProfileComponent implements OnInit {
private usermail: string;
private net_worth: string;
constructor(){}
ngOnInit(){
this.usermail = '';
this.net_worth = '';
var user = firebase.auth().currentUser;
if (user != null) {this.usermail = user.email;}
}
}
此代码用于向我提供来自身份验证的用户电子邮件,但它不能用于返回我的架构中的其他信息,例如net_worth
和username
。我想是因为它存储在数据库表中,而不是身份验证功能。
如何调用用户生成的ID来获取指定用户的详细信息?具体来说,他们是username
和net_worth
?
答案 0 :(得分:3)
您的数据库结构是这样的
Users
user-Id1
email
net_worth
username
成功登录后,您可以根据firebase返回的响应查询数据库。 uid
,就像您可以访问email
一样,还有displayName
代替username
。有关管理用户read here
查询您的数据库,了解其他信息。
var user = firebase.auth().currentUser;
if (user) {
var getUserInfo = firebase.database().ref('users/' + user.uid);
getUserInfo.once('value', function(snapshot) {
console.log(snapshot.val()); //returns net_worth, etc
});
}