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