Firma:
export interface RulesTestEnvironment
Proprietà
Proprietà | Tipo | Descrizione |
---|---|---|
emulatori | { database?: HostAndPort; Firestore?: HostAndPort; spazio di archiviazione?: HostAndPort; } | Una copia di sola lettura della configurazione dell'emulatore specificata o rilevata al momento della creazione dell'ambiente di test. |
projectId | stringa | L'ID progetto specificato o rilevato al momento della creazione dell'ambiente di test. |
Metodi
Metodo | Descrizione |
---|---|
authenticatedContext(user_id, tokenOptions) | Crea un RulesTestContext che si comporta come un utente Firebase Auth autenticato.Alle richieste create tramite il contesto restituito sarà associato un token Firebase Auth fittizio. |
cleanup() | Alla fine del codice di test, chiama la funzione di pulizia. Elimina tutti i RulesTestContext creati nell'ambiente di test e ripulisci le risorse sottostanti, consentendo un'uscita pulita.Questo metodo non modifica in alcun modo lo stato negli emulatori. Per reimpostare i dati tra un test e l'altro, consulta i criteri clearDatabase() , clearFirestore() e clearStorage() . |
clearDatabase() | Cancella tutti i dati nello spazio dei nomi dell'emulatore di Realtime Database. |
clearFirestore() | Cancella i dati di Firestore che appartengono a projectId nell'emulatore Firestore. |
clearStorage() | Cancella i file e i metadati di Storage in tutti i bucket nell'emulatore di Storage. |
unauthenticatedContext() | Crea un oggetto RulesTestContext che si comporta come un client che NON ha eseguito l'accesso tramite Firebase Auth.Alle richieste create tramite il contesto restituito non saranno collegati i token Firebase Auth. |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
Una copia di sola lettura della configurazione dell'emulatore specificata o rilevata al momento della creazione dell'ambiente di test.
Firma:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
L'ID progetto specificato o rilevato al momento della creazione dell'ambiente di test.
Firma:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
Crea un oggetto RulesTestContext
che si comporta come un utente Firebase Auth autenticato.
Alle richieste create tramite il contesto restituito sarà allegato un token Firebase Auth fittizio.
Firma:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
user_id | stringa | lo User-ID dell'utente. Specifica il valore di "user_id" e "sub" sul token |
tokenOptions | TokenOptions | attestazioni o override personalizzati per i payload dei token Firebase Auth |
Resi:
Esempio
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
Alla fine del codice di test, chiama la funzione di pulizia. Elimina tutti i RulesTestContext creati nell'ambiente di test e ripulisci le risorse sottostanti, consentendo un'uscita pulita.
Questo metodo non modifica in alcun modo lo stato negli emulatori. Per reimpostare i dati tra un test e l'altro, consulta clearDatabase()
, clearFirestore()
e clearStorage()
.
Firma:
cleanup(): Promise<void>;
Resi:
Promise<void>
RulesTestEnvironment.clearDatabase()
Cancella tutti i dati nello spazio dei nomi dell'emulatore di Realtime Database.
Firma:
clearDatabase(): Promise<void>;
Resi:
Promise<void>
RulesTestEnvironment.clearFirestore()
Cancella i dati nel database Firestore predefinito per projectId
nell'emulatore Firestore.
Firma:
clearFirestore(): Promise<void>;
Resi:
Promise<void>
RulesTestEnvironment.clearStorage()
Cancella i file e i metadati di Storage nel bucket attivo nell'emulatore di Storage.
Firma:
clearStorage(): Promise<void>;
Resi:
Promise<void>
RulesTestEnvironment.unauthenticatedContext()
Crea un oggetto RulesTestContext
che si comporta come un client che NON ha eseguito l'accesso tramite Firebase Auth.
Alle richieste create tramite il contesto restituito non saranno collegati token Firebase Auth.
Firma:
unauthenticatedContext(): RulesTestContext;
Resi:
Esempio
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Firma:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
callback | (context: RulesTestContext) => Promessa<void> |
Resi:
Promise<void>