Ziele bereitstellen

Bereitstellungsziele sind von Ihnen selbst definierte Kurznamen-IDs für Firebase-Ressourcen in Ihrem Firebase-Projekt, z. B. eine Hosting-Website mit eindeutigen statischen Assets oder eine Gruppe von Realtime Database-Instanzen, die dieselben Sicherheitsregeln verwenden.

Bereitstellungsziele sind nützlich, wenn Sie mehrere Hosting-Websites, mehrere Cloud Storage-Buckets oder mehrere Realtime Database-Instanzen haben. Mit Bereitstellungzielen kann die Firebase CLI Einstellungen für eine bestimmte Firebase-Ressource oder eine Gruppe von Ressourcen in Ihrem Projekt bereitstellen. Beispiele:

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

So richten Sie ein Bereitstellungsziel ein:

  1. Wenden Sie eine TARGET_NAME auf die Ziel-Firebase-Ressource oder die Gruppe von Firebase-Ressourcen an.
  2. Verweisen Sie in der Datei firebase.json auf das zugehörige TARGET_NAME, wenn Sie die Einstellungen für einzelne Ressourcen oder Ressourcengruppen konfigurieren.

Wenn Sie Firebase CLI-Befehle wie firebase deploy ausführen, gekoppelt die Firebase CLI jeden TARGET_NAME mit den zugehörigen Firebase-Ressourcen. Die Befehlszeile teilt Ihrem Firebase-Projekt dann die Einstellungen für jede Ressource mit.

Bereitstellungsziele für Firebase-Ressourcen einrichten

Wenden Sie mithilfe der Firebase CLI eine TARGET_NAME (Kurznamens-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 Ihrem Projektverzeichnis in der Datei .firebaserc gespeichert, sodass Sie Bereitstellungsziele nur einmal pro Projekt einrichten müssen.

Bereitstellungsziele für Hosting einrichten

Führen Sie den folgenden Befehl über die Befehlszeile aus, um ein Bereitstellungsziel zu erstellen und ein TARGET_NAME auf eine Hosting-Website anzuwenden:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Dabei sind die Parameter:

  • TYPE – der relevante Firebase-Ressourcentyp

    • Verwenden Sie für Firebase Hosting-Websites hosting.
  • TARGET_NAME: Ein eindeutiger Name für die Hosting-Website, die Sie für die Bereitstellung verwenden.

  • RESOURCE_IDENTIFIER: Die SITE_ID für die Hosting-Website, wie in Ihrem Firebase-Projekt aufgeführt.

Wenn du beispielsweise zwei Websites (myapp-blog und myapp-app) in deinem Firebase-Projekt erstellt hast, kannst du mit den folgenden Befehlen eine eindeutige TARGET_NAME (blog bzw. app) auf jede Website anwenden:

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

Bereitstellungsziele für Cloud Storage oder Realtime Database einrichten

Führen Sie den folgenden Befehl über die Befehlszeile aus, um ein Bereitstellungsziel zu erstellen und ein TARGET_NAME auf eine Reihe von Cloud Storage- oder Realtime Database-Ressourcen anzuwenden:

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

Dabei sind die Parameter:

  • TYPE – der relevante Firebase-Ressourcentyp

    • Verwenden Sie storage für Cloud Storage-Buckets.
    • Verwenden Sie database für Realtime Database-Instanzen.
  • TARGET_NAME: ein eindeutiger Name für die Ressource oder Gruppe von Ressourcen, die dieselben Sicherheitsregeln haben

  • RESOURCE_IDENTIFIER: Die IDs für die Ressourcen, die in Ihrem Firebase-Projekt aufgeführt sind (z. B. Storage-Bucket-Namen oder Datenbankinstanz-IDs), die alle dieselben Sicherheitsregeln verwenden.

Sie können beispielsweise den TARGET_NAME von main auf eine Gruppe von drei regionalen Cloud Storage-Buckets anwenden, die alle die gleichen Sicherheitsregeln haben. Dazu führen Sie den folgenden Befehl aus:

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

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

firebase.json-Datei für die Verwendung von Bereitstellungszielen konfigurieren

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

  1. Erstellen Sie für jede Firebase-Ressource TYPE (hosting, storage oder database) ein Array von Konfigurationsobjekten.
  2. Geben Sie in den Arrays die target (mithilfe von TARGET_NAME) an und definieren Sie Ihre Einstellungen für die verknüpfte Firebase-Ressource oder Gruppe von Ressourcen.

Ausgehend von den Beispielen oben, bei denen Ihr Firebase-Projekt zwei Hosting-Websites und drei Cloud Storage-Buckets mit denselben Sicherheitsregeln hat, 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 mehrere Konfigurationen für Ihre Ressourcen haben, können Sie mehrere Bereitstellungsziele erstellen und jedes in der Datei firebase.json angeben. Wenn Sie firebase deploy ausführen, werden alle zugehörigen Ressourcen zusammen bereitgestellt.

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 aus dem Stammverzeichnis Ihres Projektverzeichnisses ausführen.

Befehl Beschreibung
firebase target Listet die Bereitstellungsziele für das aktuelle Projektverzeichnis auf
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
Entfernt eine Ressource aus dem Ziel, dem sie zugewiesen ist
firebase target:clear \
TYPE TARGET_NAME
Entfernt alle Ressourcen oder die Hostingwebsite vom angegebenen Ziel

Mit den Befehlen target:remove und target:clear werden die Einstellungen für das Bereitstellungsziel in der Datei .firebaserc in Ihrem Projektverzeichnis automatisch aktualisiert.

Vor der Bereitstellung lokal testen

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

Befehl Beschreibung
firebase emulators:start Emuliert alle konfigurierten Ressourcen im Projektverzeichnis
firebase emulators:start \
--only hosting:TARGET_NAME
Emuliert nur den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Website
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 Realtime Database-Ziel

Weitere Informationen zur Konfiguration und Verwendung der Firebase Local Emulator Suite.

Bestimmte Firebase-Ressourcen bereitstellen

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

Befehl Beschreibung
firebase deploy Erstellt einen Release aller bereitstellbaren Ressourcen in Ihrem Projektverzeichnis
firebase deploy \
--only hosting:TARGET_NAME
Stellt nur den Hosting-Inhalt und die Hosting-Konfiguration der angegebenen Hosting-Website auf dem Livekanal für die Website bereit
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Stellt nur den Hosting-Inhalt und die Hosting-Konfiguration der angegebenen Hosting-Website in einem Vorschaukanal für die Website 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 Realtime Database-Ziel bereit