【发布时间】:2015-11-23 17:07:06
【问题描述】:
我是 Firebase 的新手,在身份验证 Firebase 后读取数据时出现的问题是 PERMISSION DENIED。我研究了所有主题,在这里发现了同样的问题: Firebase Permission denied when reading data after authentication .但是 Frank van Puffelen 的回答对我不起作用。这是我的 Firebase 规则:
{
"rules": {
"user": {
"$uid": {
"profile": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
},
"account": {
".read": false,
".write": false
},
"shared": {
"$sharedid": {
".read": "auth != null && auth.uid == $uid",
".write": false
}
},
"shared_user": {
".read": false,
".write": false
}
}
},
"node": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
},
"shared": {
"$sharedid": {
".read": "auth != null && root.child('user').child(auth.uid).child('shared').child($sharedid).child('read').val() === true",
".write": "auth != null && root.child('user').child(auth.uid).child('shared').child($sharedid).child('write').val() === true"
}
}
}
}
我找到了很多方法,但仍然被拒绝。请帮帮我!
编辑:这是我的认证:
mFirebaseRef= new Firebase("https://my-dashboard.firebaseio.com");
mFirebaseRef.authWithPassword(Constants.EMAIL, Constants.PASSWORD, new AuthResultHandler("password"));
授权句柄:
private class AuthResultHandler implements Firebase.AuthResultHandler{
private final String provider;
public AuthResultHandler(String provider){
this.provider=provider;
}
@Override
public void onAuthenticated(AuthData authData) {
Log.i(TAG, provider + " auth successful");
getData(mFirebaseRef.child("node"));
}
@Override
public void onAuthenticationError(FirebaseError firebaseError) {
Log.i(TAG, provider+ " auth unsuccessful");
}
}
最后,获取数据:==> Permission denied ?
private void getData(Query ref){
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, " onDataChange");
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.i(TAG, firebaseError.getMessage());
}
});
}
【问题讨论】:
-
请为失败的读取操作添加最小代码。请务必包含它开始读取的路径。
标签: android firebase firebase-security firebase-realtime-database