2016-06-13 8 views
0

내 중포 기지 데이터베이스가이 같은 것입니다 거부 : -중포 기지 보안 규칙 권한은

enter image description here

이 내가 작성한 보안 규칙은하지만 난 시뮬레이터를 사용할 때 그들은 잘 확인하지만, 사용할 때 코드 허가 거부 오류

{ 
    "rules": { 
    "jokes" : { 
     "textjokes" : { 
     ".read" : true, 
     ".write": "auth != null" 
    } 
}, 
    "users": { 
    "$uid": { 
    ".write": "$uid == auth.uid" 
    } 
}, 
"userslikelist": { 
    "$uid": { 
    ".write": "$uid == auth.uid" 
    } 
} 
} 

}

내가 할 줄 오류 : -

,

/userslikelist/qzCqJph6XcZbiIpbDKTTxwjRHrh1/-KK850oXwPnOvxan1xNG 실패 FirebaseError : 권한이

내 코드 거부 : FirebaseError : MISC-0-01/likeCount 실패 권한이

/농담/textjokes을/거부 -

Firebase ref = new Firebase("https://xxxxxxxxx.firebaseio.com/userslikelist/" + mAuth.getCurrentUser().getUid()); 
    ref.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) { 
       if(!likedMap.containsKey(postSnapshot.getKey())){ 
        likedMap.put(postSnapshot.getKey(), postSnapshot.getValue(String.class)); 
       } 
      } 
     } 

     @Override 
     public void onCancelled(FirebaseError firebaseError) { 

     } 
    }); 

나는 그것을 얻지 않는다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

업데이트 코드 : -

{ 
    "rules": { 
     "jokes": { 
      "textjokes": { 
       ".read": true, 
       ".write": "auth != null" 
      } 
     }, 
     "users": { 
      "$uid": { 
       ".write": "$uid == auth.uid" 
      } 
     }, 
     "userslikelist": { 
      "$uid": { 
       ".read": "$uid == auth.uid", 
       ".write": "$uid == auth.uid" 
      } 
     } 
    } 
} 

답변

1

이 문제가 발생한 다른 모든 사람들에게. 여기에 문제는 내가 firebase api 메소드를 사용하여 값을 설정하고 데이터베이스에서 읽는 것입니다. 이 예제에서 사용 된 새로운 Google firebase 시스템을 사용하도록 업데이트하는 방법을 변경 했으므로 이제 데이터베이스를 업데이트 할 수 있습니다.

https://github.com/firebase/quickstart-android/blob/master/database/app/src/main/java/com/google/firebase/quickstart/database/NewPostActivity.java#L39-L39

1

당신은 /userslikelist/userId에 대한 읽기 액세스 권한을 제공하지 않습니다 그래서 당신은 늘 당신의 onDataChangedataSnapshot를 얻을 수.

/userslikelist/userId 수준의 읽기 권한을 설정해야합니다.

{ 
    "rules": { 
    "jokes" : { 
     "textjokes" : { 
     ".read" : true, 
     ".write": "auth != null" 
     } 
    }, 
    "users": { 
     "$uid": { 
     ".write": "$uid == auth.uid" 
     } 
    }, 
    "userslikelist": { 
     "$uid": { 
     ".read": "$uid == auth.uid", //do whatever logic you need here 
     ".write": "$uid == auth.uid" 
     } 
    } 
    } 
} 
+0

난 여전히 "userslikelist"노드 아무것도하지만, 진실 = 읽어 주었다. 같은 오류 –

+0

@adofosrs 일하지 않아서 죄송합니다. 여전히 동일한 오류 –

+1

오류가 분명하기 때문에 업데이트 된 코드/규칙을 표시하십시오. –