Ziele einsetzen

Bereitstellungsziele sind Kurznamen (die Sie selbst definieren) für Firebase-Ressourcen in Ihrem Firebase-Projekt, z. B. eine Hosting-Site mit eindeutigen statischen Assets oder eine Gruppe von Echtzeitdatenbankinstanzen, die dieselben Sicherheitsregeln verwenden.

Bereitstellungsziele sind nützlich, wenn Sie über mehrere Hosting-Sites , mehrere Cloud Storage-Buckets oder mehrere Echtzeitdatenbankinstanzen verfügen. Mit Bereitstellungszielen kann die Firebase-CLI Einstellungen für eine bestimmte Firebase-Ressource oder Ressourcengruppe in Ihrem Projekt bereitstellen, wie zum Beispiel:

  • Die Hosting-Konfiguration für jede Ihrer Hosting-Sites
  • Statische Assets aus Ihrem Projektverzeichnis für jede Ihrer Hosting-Sites
  • Sicherheitsregeln, die von mehreren Realtime Database-Instanzen oder mehreren Cloud Storage-Buckets gemeinsam genutzt werden

So richten Sie ein Bereitstellungsziel ein:

  1. Wenden Sie einen TARGET_NAME auf die Ziel-Firebase-Ressource oder Gruppe von Firebase-Ressourcen an.
  2. Verweisen Sie in Ihrer Datei firebase.json auf den zugehörigen TARGET_NAME , wenn Sie die Einstellungen für jede Ressource oder Ressourcengruppe konfigurieren.

Wenn Sie Firebase-CLI-Befehle ausführen (z. B. firebase deploy “), ordnet die Firebase-CLI jeden TARGET_NAME den zugehörigen Firebase-Ressourcen zu. Die CLI übermittelt dann Ihrem Firebase-Projekt die Einstellungen für jede Ressource.

Richten Sie Bereitstellungsziele für Ihre Firebase-Ressourcen ein

Wenden Sie mithilfe der Firebase-CLI einen TARGET_NAME (Kurznamen-ID, die Sie selbst definieren) auf eine Firebase-Ressource oder eine Gruppe von Firebase-Ressourcen an. Firebase unterstützt Bereitstellungsziele für:

Die Einstellungen für Bereitstellungsziele werden in der Datei .firebaserc in Ihrem Projektverzeichnis gespeichert, sodass Sie Bereitstellungsziele nur einmal pro Projekt einrichten müssen.

Richten Sie Bereitstellungsziele für das Hosting ein

Um ein Bereitstellungsziel zu erstellen und einen TARGET_NAME auf eine Hosting-Site anzuwenden, führen Sie den folgenden CLI-Befehl aus:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Wobei die Parameter sind:

  • TYPE – der relevante Firebase-Ressourcentyp

    • Für Firebase-Hosting-Sites verwenden Sie hosting .
  • TARGET_NAME – ein eindeutiger Name für die Hosting-Site, auf der Sie die Bereitstellung durchführen

  • RESOURCE_IDENTIFIER – die SITE_ID für die Hosting-Site , wie in Ihrem Firebase-Projekt aufgeführt

Wenn Sie beispielsweise in Ihrem Firebase-Projekt zwei Websites ( myapp-blog und myapp-app ) erstellt haben, können Sie jeder Website einen eindeutigen TARGET_NAME ( blog bzw. app ) zuweisen, indem Sie die folgenden Befehle ausführen:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Richten Sie Bereitstellungsziele für Cloud Storage oder Realtime Database ein

Um ein Bereitstellungsziel zu erstellen und einen TARGET_NAME auf eine Reihe von Cloud Storage- oder Echtzeitdatenbankressourcen anzuwenden, führen Sie den folgenden CLI-Befehl aus:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

Wobei die Parameter sind:

  • TYPE – der relevante Firebase-Ressourcentyp

    • Verwenden Sie für Cloud Storage-Buckets storage .
    • Verwenden Sie für Echtzeitdatenbankinstanzen database .
  • TARGET_NAME – ein eindeutiger Name für die Ressource oder Gruppe von Ressourcen, die gemeinsame Sicherheitsregeln haben

  • RESOURCE_IDENTIFIER – die Bezeichner für die in Ihrem Firebase-Projekt aufgeführten Ressourcen (z. B. Speicher-Bucket-Namen oder Datenbankinstanz-IDs), für die alle dieselben Sicherheitsregeln gelten

Sie könnten beispielsweise den TARGET_NAME von main auf eine Gruppe von drei regionalen Cloud Storage-Buckets anwenden (die alle dieselben Sicherheitsregeln verwenden), indem Sie den folgenden Befehl ausführen:

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

Beachten Sie, dass myproject.appspot.com die Kennung für den Standard-Bucket ist, während myproject-eu und myproject-ja zwei zusätzliche Buckets sind, die im Firebase-Projekt erstellt wurden.

Konfigurieren Sie Ihre Datei „firebase.json“ für die Verwendung von Bereitstellungszielen

Nachdem Sie Bereitstellungsziele für Ihre Firebase-Ressourcen eingerichtet haben, verweisen Sie auf jeden angewendeten TARGET_NAME in Ihrer firebase.json Konfigurationsdatei:

  1. Erstellen Sie ein Array von Konfigurationsobjekten für jeden Firebase- TYPE ( hosting , storage oder database ).
  2. Geben Sie in den Arrays das target an (mithilfe von TARGET_NAME ) und definieren Sie Ihre Einstellungen für die zugehörige Firebase-Ressource oder Ressourcengruppe.

Wenn Sie die Beispiele von oben fortsetzen, in denen Ihr Firebase-Projekt über zwei Hosting-Sites und drei Cloud-Speicher-Buckets verfügt (die dieselben Sicherheitsregeln haben), würde Ihre firebase.json Datei so aussehen:

{
  "hosting": [ {
      "target": "blog",  // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog"
      "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"

      // ...
    },
    {
      "target": "app",  // "app" is the applied TARGET_NAME for the Hosting site "myapp-app"
      "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"

      // ...

      "rewrites": [...]  // You can define specific Hosting configurations for each site
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

Wenn Sie über mehrere Konfigurationen für Ihre Ressourcen verfügen, können Sie mehrere Bereitstellungsziele erstellen und jedes einzelne in der Datei firebase.json angeben. Alle zugehörigen Ressourcen werden zusammen bereitgestellt, wenn Sie firebase deploy ausführen.

Bereitstellungsziele verwalten

Die Einstellungen für Bereitstellungsziele werden in der Datei .firebaserc in Ihrem Projektverzeichnis gespeichert. Sie können die Bereitstellungsziele Ihres Projekts verwalten, indem Sie einen der folgenden Befehle im Stammverzeichnis Ihres Projektverzeichnisses ausführen.

Befehl Beschreibung
firebase target Listet die Bereitstellungsziele für Ihr aktuelles Projektverzeichnis auf
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
Entfernt eine Ressource von dem Ziel, dem sie zugewiesen wurde
firebase target:clear \
TYPE TARGET_NAME
Entfernt alle Ressourcen oder Hosting-Sites vom angegebenen Ziel

Die Befehle target:remove und target:clear aktualisieren automatisch die Deploy-Target-Einstellungen in der .firebaserc Datei in Ihrem Projektverzeichnis.

Testen Sie vor der Bereitstellung lokal

Führen Sie einen der folgenden Befehle im Stammverzeichnis Ihres Projektverzeichnisses aus.

Befehl Beschreibung
firebase emulators:start Emuliert alle konfigurierten Ressourcen in Ihrem Projektverzeichnis
firebase emulators:start \
--only hosting: TARGET_NAME
Emuliert nur den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site
firebase emulators:start \
--only storage: TARGET_NAME
Emuliert nur die Regeldatei für das angegebene Cloud Storage-Ziel
firebase emulators:start \
--only database: TARGET_NAME
Emuliert nur die Regeldatei für das angegebene Echtzeitdatenbankziel

Erfahren Sie mehr über die Konfiguration und Verwendung der Firebase Local Emulator Suite .

Stellen Sie bestimmte Firebase-Ressourcen bereit

Führen Sie einen der folgenden Befehle im Stammverzeichnis Ihres Projektverzeichnisses aus.

Befehl Beschreibung
firebase deploy Erstellt eine Version aller bereitstellbaren Ressourcen in Ihrem Projektverzeichnis
firebase deploy \
--only hosting: TARGET_NAME
Stellt nur den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site im Live-Kanal für die Site bereit
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Stellt nur den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site in einem Vorschaukanal für die Site bereit
firebase deploy \
--only storage: TARGET_NAME
Stellt nur die Regeldatei für das angegebene Cloud Storage-Ziel bereit
firebase deploy \
--only database: TARGET_NAME
Stellt nur die Regeldatei für das angegebene Echtzeitdatenbankziel bereit