Teilen Sie Projektressourcen über mehrere Standorte hinweg

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.

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 \
CHANNEL_ID
Stellt den Hosting-Inhalt und die Konfiguration der Standard- Hosting-Site unter einer Vorschau-URL bereit
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
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