簽名:
export interface RulesTestEnvironment
屬性
屬性 | 類型 | 說明 |
---|---|---|
模擬器 | { 資料庫?:HostAndPort;Firestore?HostAndPort;儲存空間:HostAndPort;} | 建立測試環境時指定或找到的模擬器設定唯讀副本。 |
projectId | 字串 | 建立測試環境時指定或找到的專案 ID。 |
方法
方法 | 說明 |
---|---|
authenticatedContext(user_id, tokenOptions) | 建立 RulesTestContext ,運作方式與通過驗證的 Firebase 驗證使用者相同。透過傳回的結構定義建立的要求會附加模擬 Firebase 驗證權杖。 |
cleanup() | 在測試程式碼的結尾,呼叫清理函式。刪除在測試環境中建立的所有 RulesTestContext,並清除基礎資源,以便順暢退出。這個方法不會以任何方式變更模擬器中的狀態。如要重設測試之間的資料,請參閱 clearDatabase() 、clearFirestore() 和 clearStorage() 的相關說明。 |
clearDatabase() | 清除即時資料庫模擬器命名空間中的所有資料。 |
clearFirestore() | 在 Firestore 模擬器中清除屬於 projectId 的 Firestore 資料。 |
clearStorage() | 清除儲存空間模擬器中所有值區的儲存空間檔案和中繼資料。 |
unauthenticatedContext() | 建立 RulesTestContext ,運作方式與用戶端「不是」透過 Firebase Auth 登入。透過傳回結構定義建立的要求不會附加 Firebase 驗證權杖。 |
withSecurityRulesDisabled(回呼) |
RulesTestEnvironment.emulators
建立測試環境時指定或找到的模擬器設定唯讀副本。
簽名:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
建立測試環境時指定或找到的專案 ID。
簽名:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
建立 RulesTestContext
,運作方式與通過驗證的 Firebase 驗證使用者相同。
透過傳回結構定義建立的要求會附加模擬 Firebase 驗證權杖。
簽名:
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()
在測試程式碼的結尾,呼叫清理函式。刪除在測試環境中建立的所有 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 模擬器中清除使用中值區的儲存檔案和中繼資料。
簽名:
clearStorage(): Promise<void>;
傳回:
承諾<void>
RulesTestEnvironment.unauthenticatedContext()
建立 RulesTestContext
,其運作方式與未使用 Firebase Auth 登入的用戶端類似。
透過傳回結構定義建立的要求不會附加 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>