Bereitstellungsziele sind von Ihnen definierte Kurznamen für Firebase-Ressourcen in Ihrem Firebase-Projekt, z. B. eine Hosting-Website mit eindeutigen statischen Assets oder eine Gruppe von Realtime Database-Instanzen mit denselben Sicherheitsregeln.
Bereitstellungsziele sind nützlich, wenn Sie mehrere Hosting-Websites, mehrere Cloud Storage-Buckets oder mehrere Realtime Database-Instanzen haben. Mit Bereitstellungszielen können Sie über die Firebase-Befehlszeile Einstellungen für eine bestimmte Firebase-Ressource oder eine Gruppe von Ressourcen in Ihrem Projekt bereitstellen, z. B.:
- 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 gewünschte Firebase-Ressource oder Gruppe von Firebase-Ressourcen an. - Verweisen Sie in der Datei
firebase.json
auf die zugehörigeTARGET_NAME
, wenn Sie die Einstellungen für die einzelnen Ressourcen oder Ressourcengruppen konfigurieren.
Wenn Sie Firebase-Befehle wie firebase deploy
ausführen, werden in der Firebase-Befehlszeile alle TARGET_NAME
mit den zugehörigen Firebase-Ressourcen verknüpft. Die CLI überträgt dann die Einstellungen für jede Ressource an Ihr Firebase-Projekt.
Bereitstellungsziele für Ihre Firebase-Ressourcen einrichten
Wenden Sie mit der Firebase CLI eine TARGET_NAME
(eine von Ihnen definierte Kurznamen-ID) auf eine Firebase-Ressource oder eine Gruppe von Firebase-Ressourcen an.
Firebase unterstützt Bereitstellungsziele für:
- Firebase Hosting Websites
- Cloud Storage for Firebase-Speicher-Buckets
- Firebase Realtime Database Instanzen
Die Einstellungen für Bereitstellungsziele werden in der Datei .firebaserc
im Projektverzeichnis gespeichert. Sie müssen Bereitstellungsziele also nur einmal pro Projekt einrichten.
Bereitstellungsziele für Hosting einrichten
Führen Sie den folgenden Befehl aus, um ein Bereitstellungsziel zu erstellen und eine TARGET_NAME
auf eine Hosting-Website anzuwenden:
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
Die Parameter sind:
TYPE – der entsprechende 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, auf die Sie bereitstellen
RESOURCE_IDENTIFIER:
SITE_ID
für die Hosting-Website, wie in Ihrem Firebase-Projekt aufgeführt
Wenn Sie beispielsweise zwei Websites (myapp-blog
und myapp-app
) in Ihrem Firebase-Projekt erstellt haben, können Sie jeder Website eine eindeutige TARGET_NAME
(blog
bzw. app
) zuweisen. Führen Sie dazu die folgenden Befehle aus:
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 aus, um ein Bereitstellungsziel zu erstellen und eine 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 ...
Die Parameter sind:
TYPE – der entsprechende Firebase-Ressourcentyp
- Verwenden Sie für Cloud Storage-Buckets
storage
. - Verwenden Sie für Realtime Database-Instanzen
database
.
- Verwenden Sie für Cloud Storage-Buckets
TARGET_NAME: Ein eindeutiger Name für die Ressource oder Gruppe von Ressourcen, die Sicherheitsregeln gemeinsam nutzen.
RESOURCE_IDENTIFIER: Die IDs der Ressourcen, die in Ihrem Firebase-Projekt aufgeführt sind (z. B. Speicher-Bucket-Namen oder Datenbankinstanz-IDs), für die alle dieselben Sicherheitsregeln gelten
Sie können beispielsweise die TARGET_NAME
von main
auf eine Gruppe von drei regionalen Cloud Storage-Buckets anwenden, die alle dieselben Sicherheitsregeln haben. Führen Sie dazu den folgenden Befehl aus:
firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja
myproject.firebasestorage.app
ist die Kennung für den Standard-Bucket. myproject-eu
und myproject-ja
sind zwei zusätzliche Buckets, die im Firebase-Projekt erstellt wurden.
firebase.json-Datei für die Verwendung von Bereitstellungszielen konfigurieren
Nachdem Sie Bereitstellungsziele für Ihre Firebase-Ressourcen eingerichtet haben, müssen Sie in der Konfigurationsdatei firebase.json
auf jede angewendete TARGET_NAME
verweisen:
- Erstellen Sie für jede Firebase-Ressource
TYPE
(hosting
,storage
oderdatabase
) ein Array von Konfigurationsobjekten. - Geben Sie in den Arrays die
target
(mithilfe derTARGET_NAME
) an und definieren Sie die Einstellungen für die zugehörige Firebase-Ressource oder ‑Ressourcengruppe.
Anknüpfend an die Beispiele oben, in 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 in der Datei firebase.json
angeben. Alle zugehörigen Ressourcen werden gemeinsam 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 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 Hosting-Website aus dem angegebenen Ziel |
Mit den Befehlen target:remove
und target:clear
werden die Bereitstellungszieleinstellungen in der Datei .firebaserc
im Projektverzeichnis automatisch aktualisiert.
Vor der Bereitstellung lokal testen
Führen Sie einen der folgenden Befehle im Stammverzeichnis Ihres Projektverzeichnisses aus.
Befehl | Beschreibung |
---|---|
firebase emulators:start
|
Emuliert alle konfigurierten Ressourcen im Projektverzeichnis |
firebase emulators:start \ |
Nur die Hosting-Inhalte und die Konfiguration der angegebenen Hosting-Website emulieren |
firebase emulators:start \
|
Nur die Regelndatei für das angegebene Cloud Storage-Ziel wird emuliert. |
firebase emulators:start \
|
Es wird nur die Regeldatei für das angegebene Realtime Database-Ziel emuliert. |
Weitere Informationen zum Konfigurieren und Verwenden von Firebase Local Emulator Suite
Bestimmte Firebase-Ressourcen bereitstellen
Führen Sie einen der folgenden Befehle im Stammverzeichnis Ihres Projektverzeichnisses aus.
Befehl | Beschreibung |
---|---|
firebase deploy
|
Erstellt eine Version aller ausführbaren Ressourcen im Projektverzeichnis. |
firebase deploy \
|
Es werden nur die Hosting-Inhalte und die Konfiguration der angegebenen Hosting-Website auf dem Livekanal für die Website bereitgestellt. |
firebase hosting:channel:deploy CHANNEL_ID \ |
Es werden nur die Hosting-Inhalte und die Hosting-Konfiguration der angegebenen Website in einem Vorschaukanal für die Website bereitgestellt. |
firebase deploy \
|
Es wird nur die Regelndatei für das angegebene Cloud Storage-Ziel bereitgestellt. |
firebase deploy \
|
Es wird nur die Regelndatei für das angegebene Realtime Database-Ziel bereitgestellt. |