Signature:
export interface RulesTestEnvironment
屬性
屬性 | 類型 | 說明 |
---|---|---|
模擬器 | {資料庫?:HostAndPort;例如:HostAndPort; Storage?:HostAndPort; } | 在建立測試環境時指定或找到的模擬器設定唯讀副本。 |
projectId | 字串 | 建立測試環境時指定或找到的專案 ID。 |
方法
方法 | 說明 |
---|---|
authenticatedContext(user_id, tokenOptions) | 建立 RulesTestContext ,運作方式與經過驗證的 Firebase 驗證使用者相同。透過傳回的內容建立的要求,會附加模擬 Firebase 驗證權杖。 |
cleanup() | 在測試程式碼的結尾呼叫清理函式。刪除測試環境中建立的所有 RulesTestContext 並清除基礎資源,允許乾淨退出。這個方法不會以任何方式變更模擬器中的狀態。如要在測試之間重設資料,請參閱 clearDatabase() 、clearFirestore() 和 clearStorage() 。 |
clearDatabase() | 清除即時資料庫模擬器命名空間中的所有資料。 |
clearFirestore() | 在 Firestore 模擬器中清除屬於 projectId 的 Firestore 資料。 |
clearStorage() | 在儲存空間模擬器中,清除所有值區內的 Storage 檔案和中繼資料。 |
unauthenticatedContext() | 建立 RulesTestContext ,行為模式與未透過 Firebase Auth 登入的用戶端類似。透過傳回的內容建立的要求不會附加 Firebase 驗證權杖。 |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
在建立測試環境時指定或找到的模擬器設定唯讀副本。
Signature:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
建立測試環境時指定或找到的專案 ID。
Signature:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
建立 RulesTestContext
,運作方式與經過驗證的 Firebase 驗證使用者相同。
透過傳回結構定義建立的要求會附加模擬 Firebase 驗證權杖。
Signature:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
參數
參數 | 類型 | 說明 |
---|---|---|
user_id | 字串 | 使用者 ID指定權杖的「user_id」和「sub」值 |
tokenOptions | TokenOptions | Firebase 驗證權杖酬載的自訂聲明或覆寫值 |
傳回:
範例
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
在測試程式碼的結尾呼叫清理函式。刪除在測試環境中建立的所有 RulesTestContexts,並清除基礎資源,以便順暢退出。
這個方法不會以任何方式變更模擬器中的狀態。如要在測試之間重設資料,請參閱 clearDatabase()
、clearFirestore()
和 clearStorage()
。
Signature:
cleanup(): Promise<void>;
傳回:
Promise<void>
RulesTestEnvironment.clearDatabase()
清除即時資料庫模擬器命名空間中的所有資料。
Signature:
clearDatabase(): Promise<void>;
傳回:
Promise<void>
RulesTestEnvironment.clearFirestore()
在 Firestore 模擬器中清除 projectId
的預設 Firestore 資料庫資料。
Signature:
clearFirestore(): Promise<void>;
傳回:
Promise<void>
RulesTestEnvironment.clearStorage()
在儲存空間模擬器中清除使用中值區中的 Storage 檔案和中繼資料。
Signature:
clearStorage(): Promise<void>;
傳回:
Promise<void>
RulesTestEnvironment.unauthenticatedContext()
建立 RulesTestContext
,其行為類似於用戶端未透過 Firebase Auth 登入的。
透過傳回的結構定義建立的要求不會附加 Firebase 驗證權杖。
Signature:
unauthenticatedContext(): RulesTestContext;
傳回:
範例
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Signature:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
回呼 | (背景資訊:RulesTestContext) => Promise<void> |
傳回:
Promise<void>