Firebase로 웹서비스를 만들어 배포(deploy)를 하다 보면, 파이어 베이스의 보안규칙도 함께 갱신되는데, 만일 파이어 베이스 초기설정 시 보안규칙을 사용자가 별도로 설정해 주지 않았다면, 기본값으로 초기화되게 된다.
이 때문에, DB 등의 자료를 저장하는 Firestore는 다음과 같은 형태로 보안규칙이 초기화되고,
사진 파일 등을 저장하는 storage는 다음과 같은 방식으로 보안규칙이 초기화되는 때문에
정상적으로 작동하던 웹서비스가 새롭게 배포를 하고 나면 코드상 오류가 없음에도 동작하지 않고, 에러가 발생하기도 한다. 물론 위의 보안규칙을 파이어베이스 콘솔에서 적절히 변경해 주면 쉽게 해결되기는 한다. 다만,
배포를 할 때마다 매번 이렇게 수작업으로 보안규칙을 수정하는 것은 번거로운 일이다.
이러한 현상의 원인은 프로젝트 폴더에 있던 보안규칙을 초깃값 상태로 그대로 사용하고 있기 때문이며, 이를 수정하기만 하면 쉽게 해결할 수 있다.
예를 들어 kongyi2라는 이름의 폴더를 사용해 파이어베이스 프로젝트를 만들다 보면, 이 폴더에는 다음과 같이 기본적으로 firebase.json 파일과, firestore.rules와 storage.rules라는 파일이 생기게 되는데,
이 파일들의 내용이 기본초기값으로 지정된 상태라, 웹서비스를 파이어베이스 호스팅을 이용해 배포할 때마다, 파이어베이스 콘솔에서 변경해 둔 보안규칙도 이러한 파일들에 포함된 기본 초기값으로 덮어 쓰여서 발생하기 때문이다.
따라서, firebase.json 내에 다음과 같이 firestore 및 storage 관련 보안 규칙 파일 이름을 지정해 주고,
firestore.rules 파일의 내용을 기존에 다음과 같았던 것을
다음과 같은 방식으로 변경해 저장해 주고
storage.rules 파일의 내용은 원래 다음과 같던 것을
다음과 같이 또는 적절한 권한 허용 조건으로 변경하여 저장하면 된다.
이후, 터미널에서 통상적인 방법으로 firebase deploy 명령을 내리고
파이어베이스 콘솔에 들어가 확인해 보면,
다음과 같이 firestore 및 storage 서비스의 보안규칙이 초기화되지 않고, 별도 파일에서 설정된 상태를 반영하고 있는 것을 확인할 수가 있다.

