Firebase ReactNative 연동 에러 Error: [storage/unauthorized] User is not authorized to perform the desired action.

2022. 2. 10. 23:50ReactNative

 

 

 

현재 벨로퍼트님의 리액트 네이티브를 다루는 기술 책의 예제를 익혀가며 리액트 네이티브를 학습하고 있다.

이번장에서 Firebase와 ReactNative를 연동하여 Firebase storage에 이미지를 저장하려 하는데,

좀 전까지는 잘만 실행되던 시뮬레이터가 튕김 현상과 함께 아무리 켜도 계속 종료되었다.

 

 

터미널을 확인해보니 다음과 같은 에러 메시지가 출력되었다

 

Possible Unhandled Promise Rejection (id: 0):

Error: [storage/unauthorized] User is not authorized to perform the desired action.

NativeFirebaseError: [storage/unauthorized] User is not authorized to perform the desired action.

 

 

storage 얘기하는 걸 보니 분명 Firebase로 인한 에러인 것 같아서 구글링과 스택 오버 플로어를 살펴봤지만

원하는 결과가 나오지 않았다.. 받아들이자! 

그 바로 뒤에 unauthorized를 생각해보다가 다른 외국 커뮤니티에서 Firebase의 보안 및 승인 설정에 대한 글을 보게 되었다.

 

사용자 식별을 넘어 사용자가 누구인지 알아내어 cloud storage 파일에 대한 액세스를 제어할 방법이 필요한데

이러한 방법은 Firebase 인증이 필요하다.

 

Firebase 인증 방법

 

1. Firebase 콘솔에서 본인이 만든 앱 클릭

 

 

2. Storage > Rules 클릭 후, 하단의 코드로 대체

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

 

이렇게 하면 시뮬레이터가 다시 정상 작동되는 걸 확인할 수 있다

책에는 따로 나와있지 않은 내용이라, 혹시라도 나와 같은 에러를 맞닥뜨렸다면 도움이 되길 바라는 마음으로 작성해본다.

 

 

 

Firebase Cloud Storage에 대한 보안 규칙에 대해 더 알고 싶다면

아래 페이지를 참고하자 :)

 

https://firebase.google.com/docs/storage/security?hl=ko 

 

Cloud Storage에 대한 Firebase 보안 규칙 이해  |  Firebase Documentation

의견 보내기 Cloud Storage에 대한 Firebase 보안 규칙 이해 지금까지 보안은 앱 개발에서 가장 복잡한 부분 중 하나였습니다. 대부분의 애플리케이션에서 개발자는 인증(사용자가 누구인지) 및 승인(

firebase.google.com

 

반응형