Firebase Angular 2从用户表中检索数据

时间:2016-09-27 06:27:41

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

下面我有一个注册码。这来自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_worthusername。我想是因为它存储在数据库表中,而不是身份验证功能。

如何调用用户生成的ID来获取指定用户的详细信息?具体来说,他们是usernamenet_worth

1 个答案:

答案 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
    });
}