我使用Firebase使用匿名登录方法通过AngularFire进行简单登录,我想知道是否还要设置从
返回的用户对象的displayName属性$scope.loginObj.$login('anonymous').then(function(user) {
user.displayName // This is an empty string
}
我想设置displayName并将其保存回Firebase中,以便用户可以显示为该displayName属性。据我所知,你实际上并没有自己写简单登录。如果您正在使用电子邮件/密码身份验证和使用$scope.loginObj.$createUser('name', 'password')
答案 0 :(得分:3)
这与您描述的方式不可能,但是,您可以这样做以获得相同的行为。
$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'
}
}
}
这可确保只有经过正确身份验证的用户才能修改自己的显示名称。