Sie können eine oder mehrere Firebase Hosting-Websites in einem einzigen Firebase-Projekt einrichten. Da sich alle Websites im selben Firebase-Projekt befinden, können sie alle auf die anderen Firebase-Ressourcen des Projekts zugreifen.
- Jede Website hat eine eigene Hostingkonfiguration.
- Jede Website beherbergt eine eigene Sammlung von Inhalten.
- Jede Website kann eine oder mehrere verknüpfte Domains haben.
Wenn Sie mehrere Hosting-Websites im selben Firebase-Projekt einrichten, können Sie Firebase-Ressourcen einfacher zwischen ähnlichen Websites und Apps teilen. Wenn Sie beispielsweise Ihren Blog, das Admin-Dashboard und die öffentliche App als einzelne Websites im selben Firebase-Projekt einrichten, können sie alle dieselbe Firebase Authentication-Nutzerdatenbank verwenden und haben gleichzeitig eigene eindeutige Domains oder Inhalte.
Schritt 1: Firebase-CLI-Version aktualisieren
Wenn Sie auf die neuesten Firebase Hosting-Funktionen zugreifen möchten, aktualisieren Sie die Firebase CLI auf die neueste Version.
Schritt 2: Zusätzliche Websites hinzufügen
Sie können einem Firebase-Projekt mit einer der folgenden Methoden weitere Websites hinzufügen:
Workflow auf der Seite Hosting der Firebase-Konsole verwenden
Verwenden Sie den Befehl Firebase in der Befehlszeile:
firebase hosting:sites:create SITE_ID
Hosting REST API verwenden:
projects.sites.create
Für jede dieser Methoden geben Sie eine SITE_ID
an, mit der die von Firebase bereitgestellten Standardsubdomains für die Website erstellt werden:
SITE_ID.web.app
SITE_ID.firebaseapp.com
Da die SITE_ID
für diese URLs verwendet wird, gelten für die Website-ID die folgenden Anforderungen:
- Es muss ein gültiges Hostnamenlabel sein, d. h., es darf keine Zeichen wie
.
oder_
enthalten. - Darf höchstens 30 Zeichen lang sein
- Muss innerhalb von Firebase global eindeutig sein
Sie können jeder Website optional benutzerdefinierte Domains hinzufügen, um denselben Inhalt und dieselbe Konfiguration für mehrere URLs bereitzustellen.
Sekundäre Website löschen
Sie haben folgende Möglichkeiten, unerwünschte Websites aus einem Firebase-Projekt zu löschen:
Workflow auf der Seite Hosting der Firebase-Konsole verwenden
Verwenden Sie den Befehl Firebase in der Befehlszeile:
firebase hosting:sites:delete SITE_ID
Hosting REST API verwenden:
projects.sites.delete
Die Standardwebsite, die dieselbe SITE_ID
wie Ihre Firebase-Projekt-ID hat, kann nicht gelöscht werden.
Schritt 3: Bereitstellungsziele für Ihre Websites einrichten
Wenn Sie mehrere Websites haben und Firebase-Befehle zum Bereitstellen ausführen, muss die Befehlszeile angeben können, welche Einstellungen auf jeder Website bereitgestellt werden sollen. Mit deploy targets können Sie eine bestimmte Website mit einer TARGET_NAME
in Ihrer firebase.json
-Konfigurationsdatei und in Ihren Firebase-Befehlszeilen eindeutig identifizieren, um sie zu testen oder auf Ihren Websites bereitzustellen.
Wenn Sie ein Bereitstellungsziel erstellen und eine TARGET_NAME
auf eine Hosting-Website anwenden möchten, führen Sie den folgenden Befehl im Stammverzeichnis Ihres Projektverzeichnisses aus:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Die Parameter sind:
TARGET_NAME: Ein eindeutiger Name (von Ihnen definiert), der für die Hosting-Website verwendet wird, auf der Sie die Bereitstellung vornehmen.
RESOURCE_IDENTIFIER:
SITE_ID
für die Hosting-Website, 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 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
Die Einstellungen für Bereitstellungsziele werden in der Datei .firebaserc
im Projektverzeichnis gespeichert. Sie müssen Bereitstellungsziele also nur einmal pro Projekt einrichten.
Schritt 4: Hostingkonfiguration für jede Website definieren
Verwenden Sie die für eine Website angewendete TARGET_NAME
, wenn Sie die Hostingkonfiguration in der Datei firebase.json
definieren.
Wenn die
firebase.json
-Datei die Konfiguration für mehrere Websites definiert, verwenden Sie ein Arrayformat:{ "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 } ] }
Wenn in Ihrer
firebase.json
-Datei die Konfiguration nur für eine Website definiert ist, ist es nicht erforderlich, ein Arrayformat zu verwenden:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Schritt 5: Lokal testen, Änderungen in der Vorschau ansehen und auf Ihren Websites bereitstellen
Führen Sie einen der folgenden Befehle im Stammverzeichnis Ihres lokalen Projektverzeichnisses aus.
Befehl | Beschreibung |
---|---|
firebase emulators:start --only hosting |
Emuliert den Hosting-Inhalt und die Konfiguration der Standard-Hosting-Website unter einer lokal gehosteten URL |
firebase emulators:start --only hosting:TARGET_NAME |
Emuliert den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Website unter einer lokal gehosteten URL |
firebase hosting:channel:deploy \ |
Die Hosting-Inhalte und die Konfiguration der Standard-Hosting-Website werden unter einer Vorschau-URL bereitgestellt. |
firebase hosting:channel:deploy \ |
Die Hosting-Inhalte und die Konfiguration der angegebenen Hosting-Website werden unter einer Vorschau-URL bereitgestellt. |
firebase deploy --only hosting |
Die Hosting-Inhalte und ‑Konfiguration werden auf dem Livekanal von allen in firebase.json konfigurierten Hosting-Websites bereitgestellt.
|
firebase deploy --only hosting:TARGET_NAME |
Die Hosting-Inhalte und ‑Konfiguration werden auf dem Livekanal der angegebenen Hosting-Website bereitgestellt. |
Befehl | Beschreibung |
---|---|
(nicht empfohlen; verwenden Sie stattdessen emulators:start )firebase serve --only hosting
|
Stellt die Hosting-Inhalte und die Konfiguration der Standard-Hosting-Website unter einer lokal gehosteten URL bereit |
(nicht empfohlen; verwenden Sie stattdessen emulators:start )firebase serve --only hosting:TARGET_NAME
|
Stellt die Hosting-Inhalte und die Konfiguration der angegebenen Hosting-Website unter einer lokal gehosteten URL bereit |