Signature:
export interface RulesTestEnvironment
属性
媒体资源 | 类型 | 说明 |
---|---|---|
模拟器 | {数据库?:HostAndPort;Firestore?HostAndPort;存储?:HostAndPort; } | 在创建测试环境时指定或发现的模拟器配置的只读副本。 |
projectId | string | 创建测试环境时指定或发现的项目 ID。 |
方法
方法 | 说明 |
---|---|
authenticatedContext(user_id, tokenOptions) | 创建一个行为类似于经过身份验证的 Firebase Auth 用户的 RulesTestContext 。通过返回的上下文创建的请求将附加一个模拟的 Firebase 身份验证令牌。 |
cleanup() | 在测试代码的最后,调用清理函数。销毁在测试环境中创建的所有 RulesTestContext,清理底层资源,以允许正常退出。此方法不会以任何方式更改模拟器中的状态。如需在两次测试之间重置数据,请参阅 clearDatabase() 、clearFirestore() 和 clearStorage() 。 |
clearDatabase() | 清除 Realtime Database 模拟器命名空间中的所有数据。 |
clearFirestore() | 清除 Firestore 中属于 Firestore 模拟器 projectId 的数据。 |
clearStorage() | 在 Storage 模拟器中,清除所有存储分区中的 Storage 文件和元数据。 |
unauthenticatedContext() | 创建一个 RulesTestContext ,它的行为方式类似于未通过 Firebase Authentication 登录的客户端。通过返回的上下文创建的请求不会附加 Firebase Auth 令牌。 |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
在创建测试环境时指定或发现的模拟器配置的只读副本。
Signature:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
创建测试环境时指定或发现的项目 ID。
Signature:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
创建一个行为类似于经过身份验证的 Firebase Auth 用户的 RulesTestContext
。
通过返回的上下文创建的请求会附加一个模拟的 Firebase 身份验证令牌。
Signature:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
参数
参数 | 类型 | 说明 |
---|---|---|
user_id | string | 用户的用户 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()
。
Signature:
cleanup(): Promise<void>;
返回:
Promise<void>
RulesTestEnvironment.clearDatabase()
清除 Realtime Database 模拟器命名空间中的所有数据。
Signature:
clearDatabase(): Promise<void>;
返回:
Promise<void>
RulesTestEnvironment.clearFirestore()
清除 Firestore 模拟器中 projectId
的默认 Firestore 数据库中的数据。
Signature:
clearFirestore(): Promise<void>;
返回:
Promise<void>
RulesTestEnvironment.clearStorage()
在 Storage 模拟器中,清除活跃存储分区中的 Storage 文件和元数据。
Signature:
clearStorage(): Promise<void>;
返回:
Promise<void>
RulesTestEnvironment.unauthenticatedContext()
创建一个 RulesTestContext
,它的行为类似于未通过 Firebase Authentication 登录的客户端。
通过返回的上下文创建的请求不会附加 Firebase Auth 令牌。
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>;
参数
参数 | 类型 | 说明 |
---|---|---|
callback | (上下文:RulesTestContext)=> Promise<void> |
返回:
Promise<void>