콘솔로 이동
Cloud Firestore 사용해 보기: Firebase와 Google Cloud Platform의 유연하며 확장 가능한 데이터베이스를 살펴보세요. Cloud Firestore 자세히 알아보기

데이터베이스 규칙 시작하기

Firebase 실시간 데이터베이스가 제공하는 자바스크립트와 유사한 구문의 유연한 표현식 기반 규칙 언어를 사용하여 데이터의 구조, 색인 생성 방법 및 데이터를 읽고 쓸 수 있는 조건을 정의할 수 있습니다. Firebase 인증 서비스와 결합하면 사용자별 데이터 액세스 권한을 정의하고 사용자의 개인정보를 무단 액세스로부터 보호할 수 있습니다.

규칙 구성

Firebase 콘솔에서 데이터베이스의 규칙을 검색하고 변경할 수 있습니다. 프로젝트를 선택하고, 왼쪽의 데이터베이스 섹션을 선택하고, 규칙 탭을 선택하기만 하면 됩니다. 보안 규칙을 실제로 적용하기 전에 테스트해 보려면 콘솔에서 규칙 편집기 오른쪽 상단의 시뮬레이션 버튼을 사용하면 됩니다.

또한 자동 배포 시스템과 같이 규칙을 프로그래매틱 방식으로 업데이트할 수 있게 해주는 명령줄 인터페이스를 사용하여 규칙을 업데이트할 수도 있습니다. CLI는 또한 배포 대상을 통해 기본 이외의 여러 데이터베이스에 대한 규칙 배포를 지원합니다.

샘플 규칙

기본적으로 데이터베이스 규칙은 Firebase 인증을 요구하며, 인증된 사용자에게만 전체 읽기 및 쓰기 권한을 부여합니다. 기본 규칙은 사용자가 직접 규칙을 구성하기 전에 데이터베이스에 아무나 액세스할 수 없도록 합니다. 설정을 완료하고 나면 규칙을 필요에 따라 맞춤설정할 수 있습니다. 다음은 일반적인 몇 가지 예입니다.

기본

기본 규칙은 사용자의 데이터베이스 읽기 및 쓰기 액세스를 중지합니다. 이 규칙을 사용하면 Firebase 콘솔을 통해서만 데이터베이스에 액세스할 수 있습니다.

// These rules don't allow anyone read or write access to your database
{
  "rules": {
    ".read": false,
    ".write": false
  }
}

공개

개발 중에는 기본 규칙 대신 공개 규칙을 사용하여 파일의 읽기 및 쓰기를 공개적으로 허용할 수 있습니다. 이 방법은 인증을 설정할 필요가 없으므로 프로토타입 개발을 시작할 때 유용합니다. 이 액세스 수준은 모든 사용자가 데이터베이스를 읽고 쓸 수 있음을 의미합니다. 앱을 출시하기 전에 보다 안전한 규칙을 구성해야 합니다.

// These rules give anyone, even people who are not users of your app,
// read and write access to your database
{
  "rules": {
    ".read": true,
    ".write": true
  }
}

사용자

다음은 인증된 각 사용자에게 개인 노드(/users/$user_id)를 제공하는 규칙의 예입니다. 여기에서 $user_id인증을 통해 확인된 ID입니다. 개별 사용자의 비공개 데이터를 갖고 있는 앱에서 흔히 볼 수 있는 시나리오입니다.

// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

앱을 출시하기 전에 규칙을 정확히 구성하여 각 사용자가 필요한 데이터에만 액세스할 수 있도록 해야 합니다.

다음 단계