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:
- Wenden Sie eine
TARGET_NAME
auf die Ziel-Firebase-Ressource oder die Gruppe von Firebase-Ressourcen an. - Verweisen Sie in der Datei
firebase.json
auf das zugehörigeTARGET_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:
- Firebase Hosting-Websites
- Cloud Storage für Firebase-Storage-Buckets
- Firebase Realtime Database-Instanzen
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
.
- Verwenden Sie für Firebase Hosting-Websites
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.
- Verwenden Sie
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
:
- Erstellen Sie für jede Firebase-Ressource
TYPE
(hosting
,storage
oderdatabase
) ein Array von Konfigurationsobjekten. - Geben Sie in den Arrays die
target
(mithilfe vonTARGET_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 \
|
Entfernt eine Ressource aus dem Ziel, dem sie zugewiesen ist |
firebase target:clear \
|
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 \ |
Emuliert nur den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Website |
firebase emulators:start \
|
Emuliert nur die Regeldatei für das angegebene Cloud Storage-Ziel |
firebase emulators:start \
|
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 \
|
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 \ |
Stellt nur den Hosting-Inhalt und die Hosting-Konfiguration der angegebenen Hosting-Website in einem Vorschaukanal für die Website bereit |
firebase deploy \
|
Stellt nur die Regeldatei für das angegebene Cloud Storage-Ziel bereit |
firebase deploy \
|
Stellt nur die Regeldatei für das angegebene Realtime Database-Ziel bereit |