我使用 Firebase$authWithPassword
方法进行用户登录。我使用该$createUser
方法为我的用户创建注册,并在成功后更新我的 /users/ 路径上的条目以保存用户名、uid 和其他一些详细信息。这是代码
var myDataRef = new Firebase(baseURL + 'datalog/');
var refObj = $firebaseAuth(myDataRef);
refObj.$createUser({
email: $scope.emailId,
password: $scope.password
}).then(function(userData) {
var UserUniqueUrl = new Firebase(baseURL + 'users/' + userData.uid + '/');
UserUniqueUrl.set({
'email': $scope.emailId,
'username': $scope.username,
'uid': userData.uid,
'theme': 'default'
}, function(error) {
if (error) {
console.log(error);
} else {
console.log('Successfully updated in user table');
}
});
}).catch(function(error) {
if (error.code == 'EMAIL_TAKEN') {
$scope.regStatusError = 'Email already registered!';
} else {
$scope.regStatusError = 'Unable to register! Try again later.';
}
});
这是我的安全规则
{
"rules": {
"users": {
".read": "auth != null",
".write": "auth != null"
}
}
}
现在,如果我尝试注册它会给我权限被拒绝错误,我确定这是因为安全规则".read": "auth != null"
和".write": "auth != null"
. 如果我将规则更改为".read": true
and ".write": true
,注册将起作用,但任何人都可以看到我的用户数据,包括我不希望发生的 uid 和电子邮件 id。如何更改我的规则以适应我的需要?