Sie können eine oder mehrere Firebase-Hosting-Sites in einem einzigen Firebase-Projekt einrichten. Da sich die Sites alle im selben Firebase-Projekt befinden, können alle Sites auf die anderen Firebase-Ressourcen des Projekts zugreifen.
- Jede Site verfügt über ihre eigene Hosting-Konfiguration .
- Jede Website hostet ihre eigene Sammlung von Inhalten.
- Jede Site kann eine oder mehrere zugehörige Domänen haben.
Durch die Einrichtung mehrerer Hosting-Sites innerhalb desselben Firebase-Projekts können Sie Firebase-Ressourcen einfacher zwischen verwandten Sites und Apps teilen. Wenn Sie beispielsweise Ihren Blog, Ihr Admin-Panel und Ihre öffentliche App als einzelne Websites im selben Firebase-Projekt einrichten, können sie alle dieselbe Firebase-Authentifizierungs-Benutzerdatenbank nutzen und gleichzeitig über ihre eigenen eindeutigen Domänen oder Inhalte verfügen.
Schritt 1 : Aktualisieren Sie Ihre Firebase-CLI-Version
Greifen Sie auf die aktuellsten Firebase-Hosting-Funktionen zu, indem Sie auf die neueste Version der Firebase-CLI aktualisieren .
Schritt 2 : Fügen Sie zusätzliche Websites hinzu
Fügen Sie einem Firebase-Projekt mit einer der folgenden Methoden zusätzliche Websites hinzu:
Verwenden Sie den Workflow auf der Hosting-Seite der Firebase-Konsole
Verwenden Sie den Firebase-CLI-Befehl:
firebase hosting:sites:create SITE_ID
Verwenden Sie die Hosting-REST-API:
projects.sites.create
Für jede dieser Methoden geben Sie eine SITE_ID
an, die zum Erstellen der von Firebase bereitgestellten Standard-Subdomains für die Site verwendet wird:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Da die SITE_ID
für diese URLs verwendet wird, gelten für die Site-ID die folgenden Anforderungen:
- Muss eine gültige Hostnamenbezeichnung sein, d. h. sie darf nicht enthalten
.
,_
usw. - Darf maximal 30 Zeichen lang sein
- Muss innerhalb von Firebase global eindeutig sein
Zu jeder Site können Sie optional auch benutzerdefinierte Domänen hinzufügen , um denselben Inhalt und dieselbe Konfiguration für mehrere URLs bereitzustellen.
Löschen Sie eine sekundäre Site
Löschen Sie unerwünschte Websites mit einer der folgenden Methoden aus einem Firebase-Projekt:
Verwenden Sie den Workflow auf der Hosting-Seite der Firebase-Konsole
Verwenden Sie den Firebase-CLI-Befehl:
firebase hosting:sites:delete SITE_ID
Verwenden Sie die Hosting-REST-API:
projects.sites.delete
Beachten Sie, dass Sie die Standard-Site nicht löschen können, da diese dieselbe SITE_ID
wie Ihre Firebase-Projekt-ID hat.
Schritt 3 : Richten Sie Bereitstellungsziele für Ihre Websites ein
Wenn Sie über mehrere Sites verfügen und Firebase-CLI-Bereitstellungsbefehle ausführen, benötigt die CLI eine Möglichkeit zu kommunizieren, welche Einstellungen für jede Site bereitgestellt werden sollen. Mit Bereitstellungszielen können Sie eine bestimmte Site mit einem TARGET_NAME
in Ihrer firebase.json
Konfigurationsdatei und in Ihren Firebase-CLI-Befehlen zum Testen oder Bereitstellen auf Ihren Sites eindeutig identifizieren.
Um ein Bereitstellungsziel zu erstellen und einen TARGET_NAME
auf eine Hosting-Site anzuwenden, führen Sie den folgenden CLI-Befehl im Stammverzeichnis Ihres Projektverzeichnisses aus:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Wobei die Parameter sind:
TARGET_NAME – ein eindeutiger Name (den Sie selbst definiert haben) 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
Die Einstellungen für Bereitstellungsziele werden in der Datei .firebaserc
in Ihrem Projektverzeichnis gespeichert, sodass Sie Bereitstellungsziele nur einmal pro Projekt einrichten müssen.
Schritt 4 : Definieren Sie die Hosting-Konfiguration für jede Site
Verwenden Sie den angewendeten TARGET_NAME
einer Site, wenn Sie deren Hosting-Konfiguration in Ihrer firebase.json
Datei definieren.
Wenn Ihre Datei
firebase.json
die Konfiguration für mehrere Sites definiert, verwenden Sie ein Array-Format:{ "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 Ihre Datei
firebase.json
die Konfiguration nur für eine Site definiert, ist die Verwendung eines Array-Formats nicht erforderlich:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Schritt 5 : Lokal testen, Änderungen in der Vorschau anzeigen 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-Site unter einer lokal gehosteten URL |
firebase emulators:start --only hosting: TARGET_NAME | Emuliert den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site unter einer lokal gehosteten URL |
firebase hosting:channel:deploy \ | Stellt den Hosting-Inhalt und die Konfiguration der Standard- Hosting-Site unter einer Vorschau-URL bereit |
firebase hosting:channel:deploy \ | Stellt den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site unter einer Vorschau-URL bereit |
firebase deploy --only hosting | Stellt den Hosting-Inhalt und die Hosting-Konfiguration im Live-Kanal aller in firebase.json konfigurierten Hosting-Sites bereit |
firebase deploy --only hosting: TARGET_NAME | Stellt den Hosting-Inhalt und die Hosting-Konfiguration im Live-Kanal der angegebenen Hosting-Site bereit |
Befehl | Beschreibung |
---|---|
(nicht empfohlen; stattdessen emulators:start verwenden)firebase serve --only hosting | Stellt den Hosting-Inhalt und die Konfiguration der Standard- Hosting-Site unter einer lokal gehosteten URL bereit |
(nicht empfohlen; stattdessen emulators:start verwenden)firebase serve --only hosting: TARGET_NAME | Stellt den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site unter einer lokal gehosteten URL bereit |