파이어 베이스 오류 Missing or insufficient permissions

joyoung·2024년 3월 5일
0

파이어베이스 cloud firestore 데이타 통신이 어제만 해도 잘 되던게
오늘 기준으로 에러를 발생시켰다

에러 내용으로는
Missing or insufficient permissions
권한이 없거나 충분하지 않음 에러 메세지를 출력하였다

해결방법

https://firebase.google.com/docs/firestore/security/get-started?hl=ko

파이어 베이스 프로젝트에 들어가서 규칙 탭을 확인한다

나는 이렇게 설정 되어 있었다

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {

    match /{document=**} {
      allow read, 
      write: if request.time < timestamp.date(2024, 3, 5);
    }
  }
}

Cloud Firestore의 보안 규칙에서 write 권한에 대한 조건이 request.time < timestamp.date(2024, 3, 5); 로 되어있었고

이글을 작성 하는 시점이 3.5일이라 조건문이 걸려 false 를 반환하여
권한 문제를 발생 시킨 것

allow read, 
write: if request.time < timestamp.date(2024, 3, 6);

그래서 3월 6일으로 바꿔 설정해보니 데이타 통신이 잘 되었다

write:if ture

아예 조건문을 참으로 해놓고 써도 된다 write : true 는 안되고
if true 를 해줘야 한다

왜 이렇게 설정되어 있었지?

파이어 베이스에서 데이타 베이스를 초기에 설정할 때
테스트 모드, 프로덕션 모드를 선택하는 항목에서 테스트 모드에서 시작하게 되면
보안 규칙에 30일간 허용 가능한 조건이 자동 생성된다

allow read 면 데이타를 읽는 것은 허용 된거 아닌가?

read 속성과 write 속성이 콤마로 구분되어
write 속성에만 조건문이 달린 것 아닌가 하고 궁금해서 찾아보니

allow read, write: if ; 구문에서, read와 write는 동일한 조건에 의해 제어될 수 있으며, 이는 두 작업 모두 같은 조건을 만족해야 함을 의미합니다

라고 한다

아무튼 해결!!

참고링크

https://firebase.google.com/docs/firestore/security/get-started?hl=ko

profile
꾸준히

0개의 댓글