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 hat ihre eigene Hosting-Konfiguration .
- Jede Website hostet ihre eigene Inhaltssammlung.
- Jede Site kann eine oder mehrere zugeordnete Domains haben .
Indem Sie mehrere Hosting-Sites innerhalb desselben Firebase-Projekts einrichten, können Sie Firebase-Ressourcen einfacher zwischen verwandten Sites und Apps teilen. Wenn Sie beispielsweise Ihren Blog, Ihr Admin-Steuerfeld und Ihre öffentliche App als einzelne Sites im selben Firebase-Projekt einrichten, können sie alle dieselbe Firebase-Authentifizierungs-Benutzerdatenbank teilen und gleichzeitig ihre eigenen eindeutigen Domains oder Inhalte haben.
Schritt 1 : Aktualisieren Sie Ihre Firebase-CLI-Version
Greifen Sie auf die aktuellsten Firebase-Hostingfunktionen zu, indem Sie auf die neueste Version der Firebase-Befehlszeilenschnittstelle aktualisieren .
Schritt 2 : Fügen Sie weitere Websites hinzu
Fügen Sie mit einer der folgenden Methoden zusätzliche Sites zu einem Firebase-Projekt 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 verwendet wird, um die von Firebase bereitgestellten Standard-Subdomains für die Website zu erstellen:
-
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 ein gültiges Hostnamen-Label sein, d. h. es darf nicht enthalten
.
,_
usw. - Darf höchstens 30 Zeichen lang sein
- Muss innerhalb von Firebase global eindeutig sein
Sie können jeder Website optional auch benutzerdefinierte Domains hinzufügen , um denselben Inhalt und dieselbe Konfiguration für mehrere URLs bereitzustellen.
Löschen Sie einen sekundären Standort
Löschen Sie unerwünschte Websites aus einem Firebase-Projekt mit einer der folgenden Methoden:
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, die dieselbe SITE_ID
wie Ihre Firebase-Projekt-ID hat.
Schritt 3 : Richten Sie Bereitstellungsziele für Ihre Sites ein
Wenn Sie mehrere Sites haben und Firebase-CLI-Bereitstellungsbefehle ausführen, muss die CLI kommunizieren können, welche Einstellungen für die einzelnen Sites 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
Wo sind die Parameter:
TARGET_NAME – ein eindeutiger Name (den Sie selbst definiert haben) für die Hosting-Site, auf der Sie bereitstellen
RESOURCE_IDENTIFIER – die
SITE_ID
für die Hosting-Site , wie sie in Ihrem Firebase-Projekt aufgeführt ist
Wenn Sie beispielsweise zwei Sites ( myapp-blog
und myapp-app
) in Ihrem Firebase-Projekt erstellt haben, können Sie jeder Site 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 ihre Hosting-Konfiguration in Ihrer firebase.json
Datei definieren.
Wenn Ihre
firebase.json
Datei 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
firebase.json
Datei die Konfiguration nur für eine Site definiert, ist es nicht erforderlich, ein Array-Format zu verwenden:{ "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 Konfiguration im Live-Kanal aller Hosting-Sites bereit, die in firebase.json konfiguriert sind |
firebase deploy --only hosting: TARGET_NAME | Stellt den Hosting-Inhalt und die Konfiguration im Live-Kanal der angegebenen Hosting-Site bereit |
Befehl | Beschreibung |
---|---|
(nicht empfohlen; verwenden Sie stattdessen emulators:start )firebase serve --only hosting | Stellt den Hosting-Inhalt und die Konfiguration der Standard- Hosting-Site unter einer lokal gehosteten URL bereit |
(nicht empfohlen; verwenden Sie stattdessen emulators:start )firebase serve --only hosting: TARGET_NAME | Stellt den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site unter einer lokal gehosteten URL bereit |