Firebase/AngularFire创建用户信息

Ang*_*lin 5 firebase angularfire

我正在使用AngularFire创建一个新用户.但是当我签署用户时,我还要求输入名字和姓氏,并在注册后添加该信息.

$firebaseSimpleLogin(fbRef).$createUser($scope.signupData.email, $scope.signupData.password).then(function (user) {
  // Add additional information for current user
  $firebase(fbRef.child('users').child(user.id).child("name")).$set({
    first: $scope.signupData.first_name,
    last: $scope.signupData.last_name
  }).then(function () {
    $rootScope.user = user;
  });
});
Run Code Online (Sandbox Code Playgroud)

上面的代码工作,它创建节点fin Firebase(users/user.id/...).

问题

当我使用新用户登录时,我会收到用户默认信息:id,email,uid等,但没有名称.如何自动将该数据与用户关联?

Mik*_*ugh 9

你不能.Firebase通过将登录详细信息存储在自己的数据存储中来隐藏登录管理的复杂性.这个过程不知道你的应用程序的锻造,这意味着它不知道或者你存储的任何其他用户信息.它返回它不知道数据的方便(ID,UID,电子邮件,MD5_HASH,供应商,firebaseAuthToken).

这是给你的应用程序,然后把[U] ID和抢任何应用程序,你需要特定的用户信息(如名字,姓氏).对于一个角的应用程序,你想拥有它检索您正在寻找一旦你的认证成功广播数据的用户配置服务.

此外,在您的代码段中,请考虑更改

.child(user.id) 
Run Code Online (Sandbox Code Playgroud)

.child(user.uid) 
Run Code Online (Sandbox Code Playgroud)

如果您以后支持Facebook/Twitter/Persona身份验证,这将派上用场.uid看起来像"simplelogin:1" - 它有助于避免不可能但可能跨越提供者的id冲突.