TIL

Firebase 실시간 DB에 대한 클라이언트 액세스 만료

KANG_G1 2023. 4. 9. 15:20

토이 프로젝트로 사용했던 firebase의 실시간 DB 액세스 만료 메일을 받았다.

무슨 일인가 해서 서칭을 해보니 DB 액세스 기간이 지정되어있다는 점을 알게되었다.

 

설정을 하지 않으면 firebase DB를 사용하지 못하니 꼭 설정을 해줘야 한다.

서칭 결과 대부분의 블로그 포스팅을 보면

이런 내용으로 액세스 기간이 표기되어있었다.

위의 내용은  Cloud Storage를 사용했을 때의 설정이므로

내가 사용하는 RealTime DB를 사용했을 때의 설정을 봐야했다.

 

Firebase 공식 문서를 참조했고

공개 및 비공개 액세스 혼합(=Mixed public and private access) 문단에서 힌트를 얻었다.

내가 이해한 바로는 Boolean 값으로 프론트 측에서 DB 제어권 설정을 할 수 있다고 생각했다.


해결 방법

1. 기존 설정

{
  "rules": {
    ".read": "now < 1681398000000",  // 2023-4-14
    ".write": "now < 1681398000000",  // 2023-4-14
  }
}

2. 변경한 설정

{
  // Allow read/write access to all users under any conditions
  // Warning: **NEVER** use this ruleset in production; it allows
  // anyone to overwrite your entire database.

  "rules": {
    ".read": true,
    ".write": true
  }
}

 

위의 변경한 설정으로 DB 액세스 문제를 해결했다.

하지만 내가 설정한 것에 대해서도 단점이 존재했는데

토이 프로젝트처럼 개인이 진행하는 프로젝트의 경우에는

DB 액세스를 true로 사용해도 되지만 팀원들과 함께하는 DB라면

 

혹시 모를 계정 도용으로 인한 DB 조작이 이루어지면 안되기 때문에

.read만 true를, .write는 false로 설정을 해두어

DB의 정보만 가져와 사용할 수 있도록 설정해 두는 편이 안전할 것이다.

 

 

Reference

[Firebase 공식 DOC]