현재 벨로퍼트님의 리액트 네이티브를 다루는 기술 책의 예제를 익혀가며 리액트 네이티브를 학습하고 있다.
이번장에서 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
'IT 개발' 카테고리의 다른 글
Nextjs useEffect안의 router query가 빈값으로 나올 때 (0) | 2023.01.19 |
---|---|
ReactNative 리액트 네이티브 : 리액트 네비게이션 설정 (0) | 2022.02.13 |
리액트 불변성을 지키는 이유와 방법 (0) | 2022.02.10 |
ReactNative 리액트 네이티브 : 키보드 컨트롤하기 (IOS, Android 시뮬레이터 키보드) (0) | 2022.02.10 |
ReactNative 리액트네이티브 : useState Hook으로 상태값 관리하기 (feat. 구조분해할당) (0) | 2022.02.08 |