Unterschrift:
export interface RulesTestEnvironment
Attribute
Property | Typ | Beschreibung |
---|---|---|
Emulatoren | { Datenbank?: HostAndPort; Firestore?: HostAndPort; Speicher?: HostAndPort; } | Eine schreibgeschützte Kopie der Emulatorkonfiguration, die beim Erstellen der Testumgebung angegeben oder erkannt wurde. |
projectId | String | Die Projekt-ID, die beim Erstellen der Testumgebung angegeben oder erkannt wurde. |
Methoden
Method | Beschreibung |
---|---|
authenticatedContext(user_id, tokenOptions) | Erstellen Sie ein RulesTestContext , das sich wie ein authentifizierter Firebase Auth-Nutzer verhält.Anfragen, die über den zurückgegebenen Kontext erstellt werden, erhalten ein Pseudo-Firebase Auth-Token. |
Cleanup() | Rufen Sie ganz am Ende des Testcodes die Bereinigungsfunktion auf. Löschen Sie alle in der Testumgebung erstellten RulesTestContexts und bereinigen Sie die zugrunde liegenden Ressourcen, um ein sauberes Beenden zu ermöglichen.Diese Methode ändert den Status in Emulatoren in keiner Weise. Informationen zum Zurücksetzen von Daten zwischen Tests findest du in clearDatabase() , clearFirestore() und clearStorage() . |
clearDatabase() | Alle Daten im Namespace „Realtime Database Emulator“ löschen. |
clearFirestore() | Löschen Sie Daten in Firestore, der zum projectId im Firestore-Emulator gehört. |
clearStorage() | Speicherdateien und Metadaten in allen Buckets im Storage-Emulator löschen. |
unauthenticatedContext() | Erstellen Sie ein RulesTestContext , das sich wie ein Client verhält, der NICHT über Firebase Auth angemeldet ist.Anfragen, die über den zurückgegebenen Kontext erstellt werden, haben keine Firebase Auth-Tokens. |
withSecurityRulesDisabled(callback) |
RulesTestEnvironment.emulators
Eine schreibgeschützte Kopie der Emulatorkonfiguration, die beim Erstellen der Testumgebung angegeben oder erkannt wurde.
Unterschrift:
readonly emulators: {
database?: HostAndPort;
firestore?: HostAndPort;
storage?: HostAndPort;
};
RulesTestEnvironment.projectId
Die Projekt-ID, die beim Erstellen der Testumgebung angegeben oder erkannt wurde.
Unterschrift:
readonly projectId: string;
RulesTestEnvironment.authenticatedContext()
Erstellen Sie ein RulesTestContext
, das sich wie ein authentifizierter Firebase Auth-Nutzer verhält.
An Anfragen, die über den zurückgegebenen Kontext erstellt werden, ist ein Pseudo-Firebase-Auth-Token angehängt.
Unterschrift:
authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;
Parameter
Parameter | Typ | Beschreibung |
---|---|---|
user_id | String | Die User-ID des Nutzers. Gibt den Wert von „user_id“ und „sub“ im Token an |
tokenOptions | TokenOptions | Benutzerdefinierte Anforderungen oder Überschreibungen für Firebase Auth-Token-Nutzlasten |
Gibt zurück:
Beispiel
const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });
RulesTestEnvironment.cleanup()
Rufen Sie ganz am Ende des Testcodes die Bereinigungsfunktion auf. Löschen Sie alle RulesTestContexts, die in der Testumgebung erstellt wurden, und bereinigen Sie die zugrunde liegenden Ressourcen, um einen sauberen Exit zu ermöglichen.
Durch diese Methode wird der Status in Emulatoren in keiner Weise geändert. Informationen zum Zurücksetzen von Daten zwischen Tests findest du unter clearDatabase()
, clearFirestore()
und clearStorage()
.
Unterschrift:
cleanup(): Promise<void>;
Gibt zurück:
Promise<void>
RulesTestEnvironment.clearDatabase()
Alle Daten im Namespace „Realtime Database Emulator“ löschen.
Unterschrift:
clearDatabase(): Promise<void>;
Gibt zurück:
Promise<void>
RulesTestEnvironment.clearFirestore()
Löschen Sie im Firestore-Emulator Daten aus der Firestore-Standarddatenbank für projectId
.
Unterschrift:
clearFirestore(): Promise<void>;
Gibt zurück:
Promise<void>
RulesTestEnvironment.clearStorage()
Löschen Sie Storage-Dateien und -Metadaten im aktiven Bucket im Storage-Emulator.
Unterschrift:
clearStorage(): Promise<void>;
Gibt zurück:
Promise<void>
RulesTestEnvironment.unauthenticatedContext()
Erstellen Sie ein RulesTestContext
, das sich wie ein Client verhält, der NICHT über Firebase Auth angemeldet ist.
An Anfragen, die über den zurückgegebenen Kontext erstellt werden, sind keine Firebase-Auth-Tokens angehängt.
Unterschrift:
unauthenticatedContext(): RulesTestContext;
Gibt zurück:
Beispiel
const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });
RulesTestEnvironment.withSecurityRulesDisabled()
Unterschrift:
withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;
Parameter
Parameter | Typ | Beschreibung |
---|---|---|
callback | (Kontext: RulesTestContext) => Promise<void> |
Gibt zurück:
Promise<void>