Firebase is back at Google I/O on May 10! Register now

Teilen Sie Projektressourcen über mehrere Standorte hinweg

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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