Erweiterungen mit dem Erweiterungsemulator bewerten

Bevor Sie den Extensions-Emulator mit Ihrer App verwenden, prüfen Sie, ob Sie verstehen den gesamten Firebase Local Emulator Suite-Workflow und Sie installieren und konfigurieren Local Emulator Suite und überprüfen Sie die zugehörigen CLI-Befehle.

In diesem Leitfaden wird außerdem davon ausgegangen, dass Sie mit Firebase Extensions vertraut sind. und wie Sie sie in Ihren Firebase-Apps verwenden.

Was kann ich mit dem Extensions-Emulator tun?

Mit dem Extensions-Emulator können Sie Erweiterungen in einer sicheren lokalen Umgebung installieren und verwalten, ihre Funktionen besser kennenlernen und gleichzeitig die Abrechnungskosten minimieren. Der Emulator führt die Funktionen Ihrer Erweiterung lokal aus, einschließlich durch Hintergrundereignisse ausgelöste Funktionen mit den Emulatoren für Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication und Pub/Sub und durch Eventarc ausgelöste Funktionen, Cloud Functions Version 2.

Firebase-Projekt auswählen

Die Firebase Local Emulator Suite emuliert Produkte für ein einzelnes Firebase-Projekt.

Führen Sie vor dem Starten der Emulatoren in der Befehlszeile das Projekt aus, das verwendet werden soll firebase use in Ihrem Arbeitsverzeichnis. Oder Sie können das Flag --project für jeden Emulator .

Local Emulator Suite unterstützt die Emulation realer Firebase-Projekte und demo-Projekte erstellen.

Projekttyp Funktionen Mit Emulatoren verwenden
Real

Ein echtes Firebase-Projekt ist ein Projekt, das Sie erstellt und konfiguriert haben (höchstwahrscheinlich über die Firebase-Konsole).

Echte Projekte haben Live-Ressourcen wie Datenbankinstanzen, Speicher Buckets, Funktionen oder einer anderen Ressource, die Sie für dieses Firebase eingerichtet haben Projekt arbeiten.

Bei der Arbeit mit echten Firebase-Projekten können Sie Emulatoren für beliebige oder alle unterstützten Produkte.

Bei Produkten, die Sie nicht emulieren, werden Ihre Apps und Ihr Code Mit der Live-Ressource interagieren (Datenbankinstanz, Speicher Bucket, Funktion usw.).

Demo

Ein Firebase-Demoprojekt hat keine echte Firebase-Konfiguration und keine Live-Ressourcen. Normalerweise wird über Codelabs oder andere Tutorials auf diese Projekte zugegriffen.

Projekt-IDs für Demoprojekte haben das Präfix demo-.

Bei der Arbeit mit Firebase-Demoprojekten interagieren Ihre Apps und Ihr Code mit nur Emulatoren. Wenn Ihre App versucht, mit einer Ressource zu interagieren, für die kein Emulator ausgeführt wird, schlägt der Code fehl.

Wir empfehlen, nach Möglichkeit Demoprojekte zu verwenden. Die wichtigsten Vorteile:

  • Einfachere Einrichtung, da Sie die Emulatoren ausführen können, ohne ein Firebase-Projekt erstellen zu müssen
  • Erhöhte Sicherheit, da wenn Ihr Code versehentlich nicht emulierte (Produktions-)Ressourcen gibt es keine Möglichkeit einer Änderung der Daten, der Nutzung oder der Abrechnung.
  • Besserer Offline-Support, da keine Internetverbindung erforderlich ist, um laden Sie die SDK-Konfiguration herunter.

Erweiterungen installieren und bewerten

Mit dem Extensions-Emulator können Sie ganz einfach prüfen, ob eine Erweiterung Ihren Anforderungen entspricht.

Angenommen, Sie sind an der Trigger-E-Mail (firestore-send-email) Erweiterung, Der folgende Workflow deckt jedoch alle Erweiterungen ab. Wenn Sie Trigger Email mit lokalen Emulatoren ausführen, werden automatisch die Cloud Firestore- und Cloud Functions-Emulatoren verwendet.

So bewerten Sie eine Erweiterung lokal:

  1. Fügen Sie die Erweiterung dem Manifest der lokalen Erweiterungen hinzu. Ein Erweiterungsmanifest eine Liste der Erweiterungsinstanzen und ihrer Konfigurationen.

    firebase ext:install --local firebase/firestore-send-email

    Wenn Sie den obigen Befehl ausführen, werden Sie aufgefordert, die neueste Version von Erweiterung firebase/firestore-send-email und speichern Sie die Konfiguration unter das Manifest, aber die Konfiguration wird nicht in Ihrem Projekt bereitgestellt. Für Weitere Informationen finden Sie unter Konfiguration von Erweiterungen mit Manifesten verwalten.

  2. Starten Sie die Local Emulator Suite wie gewohnt.

    firebase emulators:start

Mit der hier aufgeführten Erweiterungsinstanz firestore-send-email Manifestdatei lädt Local Emulator Suite den Quellcode von diese Erweiterung auf ~/.cache/firebase/extensions. Sobald die Quellen heruntergeladen wurden, wird die Local Emulator Suite gestartet. Sie können dann eine der im Hintergrund ausgelösten Funktionen der Erweiterung auslösen und Ihre App mit der Local Emulator Suite verbinden, um die Integration mit Ihrer App zu testen.

Mit Emulator Suite UI können Sie der Sammlung von E-Mail-Dokumenten Daten hinzufügen und richten Sie weitere Backend-Ressourcen ein, wie für die Trigger-E-Mail-Erweiterung erforderlich.

Für nicht interaktive Testumgebungen wie kontinuierliche Integrationsworkflows können Sie alternativ ein Testskript zum Bewerten der Erweiterung schreiben, das unter anderem die erforderlichen Cloud Firestore-Daten einfügt und Funktionen auslöst. Sie würden dann Local Emulator Suite aufrufen, um das Testscript auszuführen:

firebase emulators:exec my-test.sh

Unterschiede zwischen Tests mit dem Extensions-Emulator und der Produktion

Mit dem Extensions-Emulator können Sie Erweiterungen so testen, mit der Produktionserfahrung übereinstimmt. Es gibt jedoch einige Unterschiede des Produktionsverhaltens.

Cloud IAM

Die Firebase Emulator Suite versucht nicht, IAM-bezogenes Verhalten bei der Ausführung Emulatoren halten die Regeln wurden angegeben, aber in Situationen, in denen normalerweise IAM verwendet wird, z. B. zum Festlegen von Berechtigungen für Cloud Functions, die ein Dienstkonto aufrufen, Emulator ist nicht konfigurierbar und verwendet das global verfügbare Konto auf auf Ihrem Entwicklercomputer ähnlich wie ein lokales Skript direkt ausführen.

Einschränkung des Triggertyps

Derzeit unterstützt die Firebase Local Emulator Suite nur durch HTTP-Anfragen ausgelöste Funktionen, benutzerdefinierte Eventarc-Ereignistrigger für Erweiterungen und Hintergrund durch Ereignis ausgelöste Funktionen für Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication und Pub/Sub. So bewerten Sie Erweiterungen die andere Arten ausgelöster Funktionen nutzen, Erweiterung installieren in einem Firebase-Testprojekt.

Und jetzt?