Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Führen Sie Funktionen lokal aus

Die Firebase-CLI enthält einen Cloud-Funktionsemulator, der die folgenden Funktionstypen emulieren kann:

  • HTTPS-Funktionen
  • Aufrufbare Funktionen
  • Cloud Firestore-Funktionen

Sie können Funktionen lokal ausführen, um sie zu testen, bevor Sie sie für die Produktion bereitstellen.

Installieren Sie die Firebase-CLI

Um den Emulator für Cloud-Funktionen zu verwenden, installieren Sie zunächst die Firebase-CLI:

npm install -g firebase-tools

Um den lokalen Emulator verwenden zu können, müssen Ihre Cloud-Funktionen abhängig sein von:

  • firebase-admin Version 8.0.0 oder höher.
  • firebase-functions Version 3.0.0 oder höher.

Administratoranmeldeinformationen einrichten (optional)

Wenn Ihre Funktionstests über das Firebase Admin SDK mit Google APIs oder anderen Firebase-APIs interagieren sollen, müssen Sie möglicherweise Administratoranmeldeinformationen einrichten.

  • Cloud Firestor und Echtzeit - Datenbank - Trigger haben bereits ausreichende Anmeldeinformationen und erfordern keine zusätzliche Einrichtung.
  • Für alle anderen APIs, einschließlich Firebase-APIs wie Authentifizierung und FCM oder Google-APIs wie Cloud Translation oder Cloud Speech, sind die in diesem Abschnitt beschriebenen Einrichtungsschritte erforderlich. Dies gilt unabhängig davon, ob Sie die Funktionsshell- oder firebase emulators:start .

So richten Sie Administratoranmeldeinformationen für emulierte Funktionen ein:

  1. Öffnen Sie den Bereich " Dienstkonten" der Google Cloud Console.
  2. Stellen Sie sicher, dass das App Engine-Standarddienstkonto ausgewählt ist, und wählen Sie im Optionsmenü rechts die Option Schlüssel erstellen aus .
  3. Wenn Sie dazu aufgefordert werden, wählen Sie JSON als Schlüsseltyp aus und klicken Sie auf Erstellen .
  4. Legen Sie Ihre Google-Standardanmeldeinformationen so fest, dass sie auf den heruntergeladenen Schlüssel verweisen:

    Unix

     $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
     

    Windows

     $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
     

Nach Abschluss dieser Schritte können Ihre Funktionstests mithilfe des Admin-SDK auf Firebase- und Google-APIs zugreifen. Wenn Sie beispielsweise einen Authentifizierungsauslöser testen, kann die emulierte Funktion admin.auth().getUserByEmail(email) .

Funktionskonfiguration einrichten (optional)

Wenn Sie Konfigurationsvariablen für benutzerdefinierte Funktionen verwenden, führen Sie zuerst den Befehl aus, um Ihre benutzerdefinierte Konfiguration (führen Sie diese im functions ) in Ihrer lokalen Umgebung abzurufen:

 firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json
firebase functions:shell
 

Führen Sie die Emulatorsuite aus

Verwenden Sie den Befehl emulators:start , um den emulators:start Cloud-Funktionen auszuführen:

firebase emulators:start

Der Befehl emulators:start startet Emulatoren für Cloud-Funktionen, Cloud Firestore, Echtzeitdatenbank und Firebase-Hosting basierend auf den Produkten, die Sie in Ihrem lokalen Projekt mit firebase init initialisiert haben. Wenn Sie einen bestimmten Emulator starten möchten, verwenden Sie das Flag --only :

firebase emulators:start --only functions

Wenn Sie nach dem Start der Emulatoren eine Testsuite oder ein Testskript ausführen möchten, verwenden Sie den Befehl emulators:exec :

firebase emulators:exec "./my-test.sh"

Interaktionen mit anderen Diensten

Die Emulatorsuite enthält mehrere Emulatoren, mit denen produktübergreifende Interaktionen getestet werden können.

Cloud Firestore

Wenn Sie über Cloud-Funktionen verfügen, die das Firebase Admin SDK zum Schreiben in den Cloud Firestore verwenden, werden diese Schreibvorgänge an den Cloud Firestore-Emulator gesendet, wenn dieser ausgeführt wird. Wenn durch diese Schreibvorgänge weitere Cloud-Funktionen ausgelöst werden, werden sie im Emulator für Cloud-Funktionen ausgeführt.

Firebase-Hosting

Wenn Sie Cloud-Funktionen verwenden, um dynamischen Inhalt für Firebase-Hosting zu generieren , verwenden firebase emulators:start Ihre lokalen HTTP-Funktionen als Proxys für das Hosting.

Protokollierung

Der Emulator überträgt Protokolle von Ihren Funktionen an das Terminalfenster, in dem sie ausgeführt werden. Es zeigt alle Ausgaben der console.log() , console.info() , console.error() und console.warn() in Ihren Funktionen an.

Nächste Schritte

Ein vollständiges Beispiel für die Verwendung der Firebase-Emulatorsuite finden Sie im Test-Schnellstartbeispiel .