서명:
export interface RulesTestEnvironment
속성
속성 | 유형 | 설명 |
---|---|---|
에뮬레이터 | { 데이터베이스?: HostAndPort, Firestore?: HostAndPort, 무엇인가요? HostAndPort, } | 테스트 환경 생성 시 지정되거나 발견된 에뮬레이터 구성의 읽기 전용 사본입니다. |
projectId | 문자열 | 테스트 환경 생성 시 지정되거나 검색된 프로젝트 ID입니다. |
메소드
메서드 | 설명 |
---|---|
authenticatedContext(user_id, tokenOptions) | 인증된 Firebase 인증 사용자처럼 동작하는 RulesTestContext 를 만듭니다.반환된 컨텍스트를 통해 생성된 요청에는 모의 Firebase 인증 토큰이 연결됩니다. |
cleanup() | 테스트 코드의 맨 끝에서 정리 함수를 호출합니다. 테스트 환경에서 만든 모든 RulesTestContext를 폐기하고 기본 리소스를 정리하여 클린 종료를 허용합니다.이 메서드는 에뮬레이터의 상태를 어떤 방식으로도 변경하지 않습니다. 테스트 간에 데이터를 재설정하려면 clearDatabase() , clearFirestore() , clearStorage() 를 참고하세요. |
clearDatabase()를 호출합니다. | 실시간 데이터베이스 에뮬레이터 네임스페이스의 모든 데이터를 지웁니다. |
clearFirestore() | Firestore 에뮬레이터의 projectId 에 속한 Firestore에서 데이터를 삭제합니다. |
삭제 | Storage 에뮬레이터의 모든 버킷에서 Storage 파일과 메타데이터를 지웁니다. |
unauthenticatedContext()를 사용합니다. | Firebase 인증을 통해 로그인하지 않은 클라이언트처럼 동작하는 RulesTestContext 를 만듭니다.반환된 컨텍스트를 통해 생성된 요청에는 Firebase 인증 토큰이 연결되지 않습니다. |
withSecurityRulesDisabled(콜백) |
RulesTestEnvironment.emulators
테스트 환경 생성 시 지정되거나 발견된 에뮬레이터 구성의 읽기 전용 사본입니다.
서명:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
테스트 환경 생성 시 지정되거나 검색된 프로젝트 ID입니다.
서명:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()를 사용합니다.
인증된 Firebase 인증 사용자처럼 동작하는 RulesTestContext
를 만듭니다.
반환된 컨텍스트를 통해 생성된 요청에는 모의 Firebase 인증 토큰이 연결됩니다.
서명:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
매개변수
매개변수 | 유형 | 설명 |
---|---|---|
user_id | 문자열 | 사용자의 User ID입니다. 'user_id'의 값을 지정합니다. 'sub' 토큰에서 |
tokenOptions | TokenOptions(토큰 옵션) | Firebase 인증 토큰 페이로드에 대한 커스텀 클레임 또는 재정의 |
반환:
예
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
테스트 코드의 맨 끝에서 정리 함수를 호출합니다. 테스트 환경에서 만든 모든 RulesTestContext를 폐기하고 기본 리소스를 정리하여 클린 종료를 허용합니다.
이 메서드는 어떤 방식으로도 에뮬레이터의 상태를 변경하지 않습니다. 테스트 간에 데이터를 재설정하려면 clearDatabase()
, clearFirestore()
, clearStorage()
를 참고하세요.
서명:
cleanup(): Promise<void>;
반환:
프로미스<void>
RulesTestEnvironment.clearDatabase()
실시간 데이터베이스 에뮬레이터 네임스페이스의 모든 데이터를 지웁니다.
서명:
clearDatabase(): Promise<void>;
반환:
프로미스<void>
RulesTestEnvironment.clearFirestore()
Firestore 에뮬레이터에 있는 projectId
의 기본 Firestore 데이터베이스에서 데이터를 삭제합니다.
서명:
clearFirestore(): Promise<void>;
반환:
프로미스<void>
RulesTestEnvironment.clearStorage()
Storage 에뮬레이터의 활성 버킷에서 Storage 파일과 메타데이터를 삭제합니다.
서명:
clearStorage(): Promise<void>;
반환:
프로미스<void>
RulesTestEnvironment.unauthenticatedContext()를 사용합니다.
Firebase 인증을 통해 로그인하지 않은 클라이언트처럼 동작하는 RulesTestContext
를 만듭니다.
반환된 컨텍스트를 통해 생성된 요청에는 Firebase 인증 토큰이 연결되지 않습니다.
서명:
unauthenticatedContext(): RulesTestContext;
반환:
예
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
서명:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
매개변수
매개변수 | 유형 | 설명 |
---|---|---|
콜백 | (컨텍스트: RulesTestContext) => 프로미스<void> |
반환:
프로미스<void>