회원가입할 때 사용자 정보를 firestore에 document로 저장하려고 했는데 Missing or insufficient permissions. 이런 에러가 뜨며 document가 생성되지 않았다.
원인을 찾아보니 firestore 규칙 때문인것 같다. firestore의 규칙으로 가서 확인해보자.
로그인하지 않은 사용자는 firestore에서 create를 할 수 없게 아래와 같이 규칙을 설정해놨었다. 그런데 회원가입할 때 firestore에 document를 create하려고 하니 에러가 난 것이다.
해결하는 방법으로는
allow read, write: if true;
이렇게 모든 권한을 허용해주는 방법도 있지만 이건 아무나 API키만 안다면 나의 firestore에 접근하여 사용할 수 있는 것이므로 주의해야 한다.
나는 로그인하지 않은 사용자가 데이터베이스를 건드리는 것은 막기 위해 로그인한 후 처리하도록 만들거라서 모든 권한을 허용해주지는 않을거다. 근데 얘가 왜 이럴까....
+
하루종일 삽질한 결과....왜 이런지 알았다
규칙을 다시 보니까 tweets 콜렉션에 대해서만 규칙을 정해놨으니 다른 콜렉션은 그냥 접근이 안됐던거였다.
firestore document 읽고 또 읽다가 발견했다...
이렇게 설정해주니까 됐다.
혹시 콜렉션 여러 개인데 Missing or insufficient permissions. 에러 발생하는 사람들 보안 규칙 확인해보세요
https://firebase.google.com/docs/firestore/security/rules-structure?hl=ko
'프로젝트 > 트위터 클론코딩 JJack' 카테고리의 다른 글
[Firebase] Firestore storage/object-not-found 에러 해결 (0) | 2023.11.25 |
---|---|
[React] Each child in a list should have a unique "key" prop. (0) | 2023.11.24 |
[React] styled components에서 폰트 적용하기 (0) | 2023.11.23 |
[Firestore] Full Text Search 불가능 문제 (0) | 2023.11.16 |
[React] CRA 대신 Vite 사용해서 프로젝트 만들기 (0) | 2023.11.02 |