当我尝试使用“使用密码进行身份验证”读取用户映射数据时,我得到了 permission_denied,但是如果我使用我的linkedin 登录,我就可以读取。我想知道我做错了什么?
这是我的数据和规则结构:
//Firebase Data
user-mappings: {
linkedin: {
MyLikedinID: {
user: {
uid: "simplelogin:1"
}
}
}
}
//Firebase Rules
"user-mappings": {
"linkedin": {
"$linkedin_uid": {
".read": "auth !== null && (
(auth.provider === 'linkedin' && auth.id === $linkedin_uid) ||
(auth.uid === data.child('user/uid').val())
)",
".write": "true"
}
}
}
基本上,当我使用电子邮件和密码登录时,我正在尝试访问“user-mappings/linkedin/$linkedin_uid”数据。
我这样做的代码是:
//Login
auth.$authWithPassword(user).then(function(authDataResult) {
//Some code here
}).catch(function(error) {
//Some code here
});
//Get user-mappings
var objRef = self.getRef('/user-mappings/linkedin/MyLinkedinID');
var obj = $firebaseObject(objRef);
obj.$loaded().then(function(data) {
//When I do this, I gor the permission_denied error
});