签名:
export interface RulesTestEnvironment
属性
属性 | 类型 | 说明 |
---|---|---|
模拟器 | { database?:HostAndPort;Firestore?:HostAndPort;storage?:HostAndPort;} | 在创建测试环境时指定或发现的模拟器配置的只读副本。 |
projectId | 字符串 | 在创建测试环境时指定或发现的项目 ID。 |
方法
方法 | 说明 |
---|---|
authenticatedContext(user_id, tokenOptions) | 创建一个 RulesTestContext ,其行为方式与经过身份验证的 Firebase Auth 用户类似。通过返回的上下文创建的请求将附加一个模拟 Firebase 身份验证令牌。 |
cleanup() | 在测试代码的最后,调用 cleanup 函数。销毁在测试环境中创建的所有 RulesTestContext,并清理底层资源,从而允许正常退出。此方法不会以任何方式更改模拟器中的状态。如需在两次测试之间重置数据,请参阅 clearDatabase() 、clearFirestore() 和 clearStorage() 。 |
clearDatabase() | 清除 Realtime Database 模拟器命名空间中的所有数据。 |
clearFirestore() | 清除 Firestore 模拟器中属于 projectId 的 Firestore 数据。 |
clearStorage() | 清除 Storage 模拟器中所有存储分区中的 Storage 文件和元数据。 |
unauthenticatedContext() | 创建一个行为方式类似于不通过 Firebase Auth 登录的客户端的 RulesTestContext 。通过返回的上下文创建的请求不会附加 Firebase Auth 令牌。 |
withSecurityRulesDisabled(回调) |
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 | 字符串 | 用户的 User-ID。指定“user_id”的值和“sub”标记上 |
tokenOptions | TokenOptions | Firebase 身份验证令牌载荷的自定义声明或替换项 |
返回:
示例
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
在测试代码的最后,调用 cleanup 函数。销毁在测试环境中创建的所有 RulesTestContext,并清理底层资源,以便彻底退出。
此方法不会以任何方式更改模拟器中的状态。如需在两次测试之间重置数据,请参阅 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()
创建一个 RulesTestContext
,它的行为类似于未通过 Firebase Auth 登录的客户端。
通过返回的上下文创建的请求不会附加 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>