Firebase - 如何永久保存用户个人资料?

时间:2016-07-29 03:58:45

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

Firebase控制台只允许设置电子邮件地址和密码,没有保存用户个人资料的选项,但可以使用以下代码完成:

user.updateProfile({
   displayName: "Chinmay Sarupria"
}).then(function() {
   console.log(user.displayName);
}, function(error) {
   console.log(error);
});

如果这是永久保存用户数据的方法那么就不可能为每个用户编写代码,只是为了保存他们的displayName,或者通过代码永久保存代码,此时它正在为我工​​作,但我和我一起工作。我不确定它是否会永远保持这种状态。

当然,我可以将用户数据保存在实时数据库中,然后根据用户的uid获取它,但是如果可以在用户变量中保存用户数据,那么这比从数据库获取数据要好得多。 / p>

1 个答案:

答案 0 :(得分:0)

在引用用户对象后,您可以更新该用户的UID下的值。

var rootRef = new Firebase('https://yourapp.firebaseio.com');
// Check the current user login status and redirect if not logged in
var user = rootRef.getAuth();
if (user) {
  var user = rootRef.getAuth();
  var userRef = rootRef.child('users').child(user.uid);
  ... do something with the logged in user...
}

function writeData () {
  var user = rootRef.getAuth();
  var userRef = rootRef.child('users').child(user.uid);
  var profileRef=userRef.child('profile').push();
  profileRef.update ({
    name: "Tony",
    position: "Developer"
  });
};

这应该为您的用户个人资料提供如下结构:

}
  "users" : {
    "067f75bf-4a07-473e-82e5-d9a5ee11be17" : {
      "profile" : {
      "-KN2dG5X4lLpp0fwfsXK" : {
        "name" : "Tony",
        "position" : "Developer"
      }
    }
  }   
}

注意push()函数为您提供随机生成的密钥。你可能不需要它。

希望这有帮助。