콘솔로 이동

Firebase 보안 규칙의 신속한 검증

Firebase Console에서 업데이트된 Firebase 보안 규칙을 신속하게 테스트하려면 Firebase 규칙 시뮬레이터를 사용하세요.

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

Firebase 규칙 시뮬레이터 사용

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

샘플 시뮬레이터 시나리오

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

  1. 규칙 편집기에서 다음 기본 규칙을 추가합니다.

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

    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.uid == userId;
     }
    }
    }
    
  2. 시뮬레이션 유형 드롭다운 메뉴에서 가져오기를 선택하고 위치 필드에 유효한 경로를 입력합니다.

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

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

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