署名:
export interface RulesTestEnvironment
プロパティ
プロパティ | 型 | 説明 |
---|---|---|
エミュレータ | { database?:HostAndPort;Firestore?:HostAndPort;storage?:HostAndPort;} | テスト環境の作成時に指定または検出されたエミュレータ構成の読み取り専用コピー。 |
projectId | 文字列 | テスト環境の作成時に指定または検出されたプロジェクト ID。 |
メソッド
メソッド | 説明 |
---|---|
AuthenticatedContext(user_id, tokenOptions) | 認証済みの Firebase Auth ユーザーのように動作する RulesTestContext を作成します。返されたコンテキストを介して作成されたリクエストには、疑似 Firebase Auth トークンが添付されます。 |
cleanup() | テストコードの最後にクリーンアップ関数を呼び出します。テスト環境で作成されたすべての RulesTestContexts を破棄し、基盤となるリソースをクリーンアップして、完全に終了できるようにします。このメソッドは、エミュレータの状態を変更することはありません。テスト間でデータをリセットするには、clearDatabase() 、clearFirestore() 、clearStorage() をご覧ください。 |
clearDatabase() | Realtime Database エミュレータの名前空間のデータをすべて消去します。 |
clearFirestore() | Firestore エミュレータの projectId に属する Firestore のデータを削除します。 |
clearStorage() | Storage エミュレータで、すべてのバケットの Storage ファイルとメタデータを消去します。 |
unauthenticatedContext() | Firebase Auth でログインしていないクライアントのように動作する RulesTestContext を作成します。返されたコンテキストを介して作成されたリクエストには、Firebase Auth トークンが添付されません。 |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
テスト環境の作成時に指定または検出されたエミュレータ構成の読み取り専用コピー。
署名:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
テスト環境の作成時に指定または検出されたプロジェクト ID。
署名:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
認証された Firebase Auth ユーザーのように動作する RulesTestContext
を作成します。
返されたコンテキストを介して作成されたリクエストには、疑似 Firebase Auth トークンが添付されます。
署名:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
user_id | 文字列 | ユーザーの User-ID。user_id の値を指定します。および「sub」対して、 |
tokenOptions | TokenOptions | Firebase Auth トークン ペイロードのカスタム クレームまたはオーバーライド |
戻り値:
例
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
テストコードの最後にクリーンアップ関数を呼び出します。テスト環境で作成されたすべての RulesTestContexts を破棄し、基になるリソースをクリーンアップして、完全に終了できるようにします。
このメソッドではエミュレータの状態が変わることはありません。テストの合間にデータをリセットするには、clearDatabase()
、clearFirestore()
、clearStorage()
をご覧ください。
署名:
cleanup(): Promise<void>;
戻り値:
約束 <void>
RulesTestEnvironment.clearDatabase()
Realtime Database エミュレータの名前空間のデータをすべて消去します。
署名:
clearDatabase(): Promise<void>;
戻り値:
約束 <void>
RulesTestEnvironment.clearFirestore()
Firestore エミュレータで、projectId
のデフォルトの Firestore データベースのデータを消去します。
署名:
clearFirestore(): Promise<void>;
戻り値:
約束 <void>
RulesTestEnvironment.clearStorage()
Storage エミュレータで、アクティブ バケット内の Storage ファイルとメタデータを消去します。
署名:
clearStorage(): Promise<void>;
戻り値:
約束 <void>
RulesTestEnvironment.unauthenticatedContext()
Firebase Auth でログインしていないクライアントのように動作する RulesTestContext
を作成します。
返されたコンテキストを介して作成されたリクエストには、Firebase Auth トークンが添付されません。
署名:
unauthenticatedContext(): RulesTestContext;
戻り値:
例
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
署名:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
パラメータ
パラメータ | 型 | 説明 |
---|---|---|
callback | (コンテキスト: RulesTestContext) =>約束 <void> |
戻り値:
約束 <void>