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 sie auf die anderen Firebase-Ressourcen des Projekts zugreifen.
- Jede Website hat ihre eigene Hosting-Konfiguration.
- Jede Website hostet ihre eigene Sammlung von Inhalten.
- Jeder Website können eine oder mehrere zugeordnete Domains zugeordnet sein.
Wenn Sie mehrere Hosting Websites im selben Firebase-Projekt einrichten, können Sie Firebase-Ressourcen einfacher zwischen verknüpften 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 Domains oder Inhalte haben.
Schritt 1: Firebase CLI-Version aktualisieren
Aktualisieren Sie auf die neueste Version der Firebase CLI, um auf die neuesten Firebase Hosting Funktionen zuzugreifen.
Schritt 2: Zusätzliche Websites hinzufügen
Fügen Sie einem Firebase-Projekt mit einer der folgenden Methoden zusätzliche Websites hinzu:
Verwenden Sie den Workflow auf der Hosting & Serverless > Hosting Seite der Firebase Konsole
Verwenden Sie den Firebase CLI-Befehl:
firebase hosting:sites:create SITE_IDVerwenden 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 Website verwendet wird:
SITE_ID.web.appSITE_ID.firebaseapp.com
Da die SITE_ID für diese URLs verwendet wird, muss sie die folgenden Anforderungen erfüllen:
- Muss ein gültiges Hostnamenslabel sein, d. h., es darf keine Punkte (
.), Unterstriche (_) usw. enthalten. - Darf maximal 30 Zeichen lang sein.
- Muss in Firebase global eindeutig sein.
Sie können jeder Website optional auch benutzerdefinierte Domains hinzufügen, um dieselben Inhalte und Konfiguration für mehrere URLs bereitzustellen.
Sekundäre Website löschen
Sie können unerwünschte Websites mit einer der folgenden Methoden aus einem Firebase-Projekt löschen:
Verwenden Sie den Workflow auf der Hosting & Serverless > Hosting Seite der Firebase Konsole
Verwenden Sie den Firebase CLI-Befehl:
firebase hosting:sites:delete SITE_IDVerwenden Sie die Hosting REST API:
projects.sites.delete
Die Standardwebsite 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 CLI-Befehlen zum
Testen oder Bereitstellen auf Ihren Websites eindeutig identifizieren.
Führen Sie den folgenden CLI-Befehl im Stammverzeichnis Ihres Projektverzeichnisses aus, um ein Bereitstellungsziel zu erstellen und ein TARGET_NAME auf eine Hosting Website anzuwenden:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Dabei gilt:
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_IDfü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 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. Sie müssen Bereitstellungsziele also nur einmal pro Projekt einrichten.
Schritt 4: Hosting-Konfiguration für jede Website definieren
Verwenden Sie den angewendeten TARGET_NAME einer Website, wenn Sie die Hosting
Konfiguration in Ihrer
firebase.json Datei definieren.
Wenn in Ihrer
firebase.json-Datei die Konfiguration für mehrere Websites definiert ist, 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 in Ihrer
firebase.json-Datei die Konfiguration für nur eine Website definiert ist, ist die Verwendung eines Array-Formats nicht 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 die Hosting Inhalte und Konfiguration der Standard Hosting Website unter einer lokal gehosteten URL |
firebase emulators:start --only hosting:TARGET_NAME |
Emuliert die Hosting Inhalte und Konfiguration der angegebenen Hosting Website unter einer lokal gehosteten URL. |
firebase hosting:channel:deploy \ |
Stellt die Hosting Inhalte und Konfiguration der Standard Hosting Website 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 im Live-Channel
aller Hosting Websites bereit, die in
firebase.json konfiguriert sind.
|
firebase deploy --only hosting:TARGET_NAME |
Stellt die Hosting Inhalte und Konfiguration im 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. |