Catch up on highlights from Firebase at Google I/O 2023. Learn more

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.

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 \
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 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