Firma:
export interface RulesTestEnvironment
Propiedades
Propiedad | Tipo | Descripción |
---|---|---|
emuladores | { base de datos?: HostAndPort Firestore?: HostAndPort almacenamiento?: HostAndPort }. | Es una copia de solo lectura de la configuración del emulador que se especificó o se descubrió durante la creación del entorno de pruebas. |
projectId | string | El ID del proyecto especificado o descubierto cuando se creó el entorno de pruebas. |
Métodos
Método | Descripción |
---|---|
authenticatedContext(user_id, tokenOptions) | Crea un RulesTestContext que se comporte como un usuario autenticado de Firebase Auth.Las solicitudes creadas a través del contexto devuelto tendrán un token de Firebase Auth simulado. |
cleanup() | En la parte final de tu código de prueba, llama a la función de limpieza. Destruye todos los RulesTestContexts creados en el entorno de prueba y limpia los recursos subyacentes, lo que permite una salida limpia.Este método no cambia el estado en los emuladores de ninguna manera. Para restablecer los datos entre pruebas, consulta clearDatabase() , clearFirestore() y clearStorage() . |
clearDatabase() | Borra todos los datos del espacio de nombres del emulador de Realtime Database. |
clearFirestore() | Borra los datos de Firestore que pertenezcan a projectId en el emulador de Firestore. |
clearStorage() | Borra los archivos y metadatos de Storage en todos los buckets del emulador de Storage. |
unauthenticatedContext() | Crea un RulesTestContext que se comporte como un cliente que NO accedió a través de Firebase Auth.Las solicitudes creadas a través del contexto mostrado no tendrán tokens de Firebase Auth adjuntos. |
withSecurityRulesDisabled(devolución de llamada) |
ReglasTestEnvironment.Emuladores
Es una copia de solo lectura de la configuración del emulador que se especificó o se descubrió durante la creación del entorno de pruebas.
Firma:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
El ID del proyecto especificado o descubierto cuando se creó el entorno de pruebas.
Firma:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
Crea un RulesTestContext
que se comporte como un usuario autenticado de Firebase Auth.
Las solicitudes creadas a través del contexto devuelto tendrán adjunto un token de Firebase Auth simulado.
Firma:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
user_id | string | el ID del usuario. Especifica el valor de "user_id" y "sub" en el token |
Opciones de token | Opciones de token | reclamaciones o anulaciones personalizadas para cargas útiles de tokens de Firebase Auth |
Muestra:
Ejemplo
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
En la parte final de tu código de prueba, llama a la función de limpieza. Destruye todos los RulesTestContexts creados en el entorno de pruebas y limpia los recursos subyacentes para permitir una salida limpia.
Este método no cambia el estado en los emuladores de ninguna manera. Para restablecer los datos entre pruebas, consulta clearDatabase()
, clearFirestore()
y clearStorage()
.
Firma:
cleanup(): Promise<void>;
Muestra:
Promesa<void>
RulesTestEnvironment.clearDatabase()
Borra todos los datos del espacio de nombres del emulador de Realtime Database.
Firma:
clearDatabase(): Promise<void>;
Muestra:
Promesa<void>
RulesTestEnvironment.clearFirestore()
Borra los datos de la base de datos predeterminada de Firestore para projectId
en el emulador de Firestore.
Firma:
clearFirestore(): Promise<void>;
Muestra:
Promesa<void>
RulesTestEnvironment.clearStorage()
Borra los archivos y metadatos de Storage en el bucket activo en el emulador de Storage.
Firma:
clearStorage(): Promise<void>;
Muestra:
Promesa<void>
RulesTestEnvironment.unauthenticatedContext()
Crea un RulesTestContext
que se comporte como un cliente que NO accedió a través de Firebase Auth.
Las solicitudes creadas a través del contexto mostrado no tendrán tokens de Firebase Auth adjuntos.
Firma:
unauthenticatedContext(): RulesTestContext;
Muestra:
Ejemplo
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Firma:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
callback | (contexto: RulesTestContext) => Promesa<void> |
Muestra:
Promesa<void>