是否可以在Firebase中为匿名身份验证设置displayName ?



我使用Firebase的简单登录通过AngularFire匿名登录方法,我想知道是否有办法设置从

返回的用户对象的displayName属性
$scope.loginObj.$login('anonymous').then(function(user) {
  user.displayName // This is an empty string
}

我想设置displayName并将其保存回Firebase中,以便用户可以显示为该displayName属性。据我所知,你自己并没有写任何东西给Simple Login。似乎只有当你使用电子邮件/密码认证时才会写入它使用$scope.loginObj.$createUser('name', 'password')

这在您描述的方式中是不可能的,但是,您可以这样做以获得相同的行为。

$scope.loginObj.$login('anonymous').then(function(user) {
  if (!user) return;
  $scope.userRef = (new Firebase('<Your Firebase>.firebaseio.com/users/')).child(user.uid);
  $scope.userRef.child('displayName').on('value', function (snapshot) {
    user.displayName = shapshot.val();
  });
});
// Then elsewhere in your code, set the display name and user.displayName will be updated automatically
$scope.userRef.child('displayName').set("DISPLAY NAME");

你甚至可以通过简单的安全规则来备份:

{"rules":
  "users": {
    "$uid" {
      ".read": true,
      ".write": "$uid == auth.uid'
    }
  }
}

这确保只有经过正确身份验证的用户才能修改自己的显示名。

相关内容

  • 没有找到相关文章

最新更新