Firebase 보안 규칙의 신속한 검증

Firebase Console에서 업데이트된 Firebase 보안 규칙을 신속하게 테스트하려면 Firebase 규칙 플레이그라운드를 사용하세요.

규칙 플레이그라운드는 새로운 동작을 살펴보거나 규칙을 작성하면서 이 규칙을 빠르게 검증할 때 사용할 수 있는 편리한 도구입니다. 시뮬레이션에 설정한 매개변수에 따라 액세스가 허용되었는지 거부되었는지를 확인하는 메시지가 표시됩니다.

규칙 플레이그라운드 사용

  1. Firebase Console을 열어 프로젝트를 선택합니다.
  2. 그런 다음 제품 탐색에서 다음 중 하나를 수행합니다.
    • 실시간 데이터베이스, Cloud Firestore 또는 Storage를 적절히 선택한 다음 규칙을 클릭하여 규칙 편집기로 이동합니다.
  3. 수정을 마친 후 편집기에서 규칙 플레이그라운드를 클릭합니다.
  4. 규칙 플레이그라운드 설정에서 다음과 같은 테스트 옵션을 선택합니다.
    • 읽기 또는 쓰기 테스트
    • 데이터베이스 또는 스토리지 버킷의 특정 위치(경로)
    • 인증 유형 — 인증되지 않은 사용자, 인증된 익명 사용자 또는 특정 사용자 ID
    • 규칙에서 구체적으로 참조하는 문서별 데이터(예: 특정 필드가 있어야 쓰기를 허용하는 규칙의 경우)
  5. 실행을 클릭하고 편집기 위의 배너에서 결과를 확인합니다.

샘플 규칙 플레이그라운드 시나리오

다음 샘플 시나리오와 기본 규칙을 사용하여 규칙 플레이그라운드 동작을 테스트합니다.

Cloud Firestore

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /some_collection/{document} {
      allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
      }
    }
  }

실시간 데이터베이스

 // 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"
       }
     }
   }
 }
 

Cloud Storage

// Grants a user access to a node matching their user ID
service firebase.storage {
  match /b/{bucket}/o {
    // Files look like: "user/<UID>/path/to/file.txt"
    match /user/{userId}/{allPaths=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
  • 규칙 편집기에서 위에 제공된 규칙을 추가합니다.

  • 시뮬레이션 유형 드롭다운 메뉴에서 가져오기를 선택하고 위치 필드에 유효한 경로를 입력합니다.

  • 인증을 전환하고 제공업체 드롭다운에서 인증 유형을 선택합니다.

  • 사용자 ID 세부정보를 입력하고 실행을 클릭합니다.

시뮬레이션의 결과가 편집기의 맨 위에 표시됩니다. 입력한 사용자 ID 세부정보에 따라 읽기가 허용되었는지 아니면 거부되었는지를 확인하는 배너가 나타납니다.