Sie können eine oder mehrere Firebase Hosting-Websites in einem einzelnen Firebase-Projekt einrichten. Da sich alle Websites im selben Firebase-Projekt befinden, können alle Websites auf die anderen Firebase-Ressourcen des Projekts zugreifen.
- Jede Website hat ihre eigene Hostingkonfiguration.
- Jede Website enthält eine eigene Sammlung von Inhalten.
- Jeder Website können eine oder mehrere zugeordnete Domains zugewiesen sein.
Wenn Sie mehrere Hosting-Websites im selben Firebase-Projekt einrichten, können Sie Firebase-Ressourcen einfacher zwischen zugehörigen Websites und Apps freigeben. 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 Authentication-Nutzerdatenbank verwenden, während sie gleichzeitig eigene eindeutige Domains oder Inhalte haben.
Schritt 1: Firebase-CLI-Version aktualisieren
Sie können auf die aktuellen Firebase Hosting-Funktionen zugreifen, indem Sie auf die neueste Version der Firebase-Befehlszeile aktualisieren.
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 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 einen SITE_ID
an, der zum Erstellen der von Firebase bereitgestellten Standardunterdomänen für die Website verwendet wird:
SITE_ID.web.app
SITE_ID.firebaseapp.com
Da SITE_ID
für diese URLs verwendet wird, muss die Website-ID die folgenden Anforderungen erfüllen:
- Muss ein gültiges Hostnamenlabel sein, d. h., es darf nicht
.
,_
usw. enthalten. - Darf höchstens 30 Zeichen lang sein
- Muss in Firebase global eindeutig sein
Sie können jeder Website optional benutzerdefinierte Domains hinzufügen, um dieselben Inhalte und Konfigurationen 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 Firebase-CLI-Befehl:
firebase hosting:sites:delete SITE_ID
Verwenden Sie die Hosting REST API:
projects.sites.delete
Die Standardsite mit derselben SITE_ID
wie Ihre Firebase-Projekt-ID kann nicht gelöscht werden.
Schritt 3: Bereitstellungsziele für Ihre Websites einrichten
Wenn Sie mehrere Websites haben und Firebase-CLI-Bereitstellungsbefehle ausführen, muss die CLI wissen, welche Einstellungen für die einzelnen Websites bereitgestellt werden sollen. Mit Bereitstellungszielen können Sie eine bestimmte Website mit einem TARGET_NAME
in Ihrer firebase.json
-Konfigurationsdatei und in Ihren Firebase-Befehlszeilenbefehlen zum Testen oder Bereitstellen auf Ihren Websites eindeutig identifizieren.
Wenn Sie ein Bereitstellungsziel erstellen und ein TARGET_NAME
auf eine Hosting-Website anwenden möchten, führen Sie den folgenden CLI-Befehl im Stammverzeichnis Ihres Projekts aus:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Die Parameter sind:
TARGET_NAME: ein eindeutiger Name (den Sie selbst definiert haben) für die Hosting-Website, auf der Sie die Bereitstellung vornehmen
RESOURCE_IDENTIFIER – die
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, 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. Sie müssen Bereitstellungsziele also nur einmal pro Projekt einrichten.
Schritt 4: Hostingkonfiguration für jede Website definieren
Verwenden Sie die angewendete TARGET_NAME
einer Website, wenn Sie die Hostingkonfiguration in Ihrer firebase.json
-Datei definieren.
Wenn in Ihrer
firebase.json
-Datei die Konfiguration für mehrere Websites definiert ist, 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 für nur eine Website definiert ist, ist kein Arrayformat erforderlich:{ "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 Hosting-Konfiguration der Standard-Website unter einer lokal gehosteten URL. |
firebase emulators:start --only hosting:TARGET_NAME |
Emuliert den Hosting-Inhalt und die Hosting-Konfiguration der angegebenen Website unter einer lokal gehosteten URL. |
firebase hosting:channel:deploy \ |
Stellt die Hosting-Inhalte und -Konfiguration der Standardwebsite Hosting unter einer Vorschau-URL bereit. |
firebase hosting:channel:deploy \ |
Stellt die Hosting-Inhalte und -Konfiguration der angegebenen Hosting-Website unter einer Vorschau-URL bereit. |
firebase deploy --only hosting |
Stellt die Hosting-Inhalte und -Konfiguration auf dem Live-Channel aller Hosting-Websites bereit, die in firebase.json konfiguriert sind.
|
firebase deploy --only hosting:TARGET_NAME |
Stellt die Hosting-Inhalte und -Konfiguration auf dem Live-Channel der angegebenen Hosting-Website bereit. |
Befehl | Beschreibung |
---|---|
(nicht empfohlen; verwenden Sie stattdessen emulators:start )firebase serve --only hosting
|
Stellt die Hosting-Inhalte und -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 -Konfiguration der angegebenen Hosting-Website unter einer lokal gehosteten URL bereit. |