유저가 로그인을 하고 멤버십을 선택할 때, Firestore에서 컬렉션 ' users'에 userId(uid)를 문서명으로
문서마다 유저이메일(email), 유저이름(name), 유저가 선택한 멤버쉽(membership), 유저의 가입날짜(date)를
필드로 넣는 코드를 작성했지만 프로젝트의 시작부터 파이어베이스 에러가 발생했다.
FirebaseError: [code=permission-denied]: Missing or insufficient permissions.
Firebase의 데이터베이스나 스토리지 등 접근 시에, 사용자에게 필요한 권한이 없거나 부족하여 접근이 거부되었을 때 나타나는 오류이다.
해결방법
Firebase 콘솔에서 해당 프로젝트의 데이터베이스나 스토리지 규칙을 확인하고 권한 설정을 바꿔줘야 한다.
아래와 같이 파이어스토어 규칙에 들어가 보면 노란색 동그라미 친 부분이 false로 되어 있을 것이다.
true로 변경만 해주면 된다.
그러면 아래와 같이 유저 정보 저장이 정상적으로 완료된 것을 볼 수 있다.
보안을 위해 Cloud Firestore 보안 규칙을 이용하면 조금 더 사용자의 권한을 세부적으로 설정할 수 있다.
이에 관해서는 API key와 .env에 관련한 포스팅에서 다룬 적이 있어 아래에 같이 링크를 첨부한다.
Cloud Firestore 보안 규칙 시작하기 | Firebase
Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 Cloud Firestore 보안 규칙 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하
firebase.google.com
파이어베이스 API key를 .env에 넣어서 보호하고 싶었습니다만,
파이어베이스 API key가 노출되지 않도록 주의해야 한다고 하는데 , 과연 API key가 노출되면 어떤 문제점이 있을까? - API key를 통해 파이어베이스 데이터베이스나 저장소에 접근하고 데이터를 읽거
zestlumen.tistory.com
'01_PROJECT > OBJECT _2023' 카테고리의 다른 글
[ JavaScript ] innerText와 textContent에 대하여 (0) | 2023.07.29 |
---|---|
[ JavaScript ] 회원가입, 로그인 시 빈 문자열 여부 확인하기, user_email == "" 와 !user_email (0) | 2023.07.29 |
[ Firebase ] 파이어베이스 API key를 .env에 넣어서 보호하고 싶었습니다만, (0) | 2023.07.28 |
[ Firebase + JS ] 파이어베이스 9버전에서 달라진 모듈 형식의 라이브러리 가져오기 (0) | 2023.07.27 |
프론트엔드에서 결제 시스템을 구축하고 싶어서, (0) | 2023.07.27 |