Development/Error

Possible unhandled promise rejectionError: [database/permission-denied] Client doesn't have permission to access the desired data

mefd 2024. 6. 27. 17:09
728x90

위 에러는 Firebase와 같은 데이터베이스에서 권한 설정이 제대로 되어있지 않음을 나타낸다.

해결방법 : 사용하는 부분에 대한 규칙 확인 및 수정

 


나는 storage와 realtime database를 사용하고 있었고,

해당 규칙은 다음과 같이 변경하였더니 정상 작동하였다.

 

어쩐지 알람이 많이 와있었는데, 규칙을 변경하지 않으면 사용을 중지시킬 것이라는 내용이었고,

수정 전 realtime database 규칙은
{
  "rules": {
    ".read": "now < 1712674800000",  // 2024-4-10
    ".write": "now < 1712674800000",  // 2024-4-10
  }
}
이렇게 적혀있었다.

 

 

1. Firebase Realtime Database 규칙 확인 및 수정

 

{

  "rules": {

    ".read": "auth != null",

    ".write": "auth != null"

  }

}

 

생성 직후 아무것도 건들지 않았는데, 이 경우 모든 사용자를 차단하는 경우라고 한다.

읽고 쓰기 권한 부여하기 위해 수정해야 한다.

 

수정 전 : service firebase.storage {

  match /b/{bucket}/o {

    match /{allPaths=**} {

      allow read, write: if false;

    }

  }

} -> 모든 사용자 차단

 

service firebase.storage {

  match /b/{bucket}/o {

    match /{allPaths=**} {

      // 인증된 사용자만 읽기 및 쓰기 권한을 가짐

      allow read, write: if request.auth != null;

    }

  }

}

 

https://firebase.google.com/docs/rules/insecure-rules?hl=ko#storage

 

안전하지 않은 규칙 차단  |  Firebase 보안 규칙

Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 안전하지 않은 규칙 차단 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

firebase.google.com

물론, 이 부분은 사이트에 고대~로, 잘 나와있다. 해결하고 나면 기가 막히게 잘 보이는 마법

 

 

 

 

728x90