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 das Einrichten mehrerer Hosting-Sites innerhalb desselben Firebase-Projekts können Sie Firebase-Ressourcen einfacher zwischen verwandten Sites und Apps freigeben. Wenn Sie beispielsweise Ihren Blog, Ihr Admin-Panel und Ihre öffentliche App als einzelne Sites im selben Firebase-Projekt einrichten, können sie alle dieselbe Firebase Authentication-Benutzerdatenbank gemeinsam nutzen und gleichzeitig über ihre eigenen einzigartigen Domains oder Inhalte verfügen.

Schritt 1: Aktualisieren Sie Ihre Firebase CLI - Version

Zugriff auf die aktuellsten Firebase Hosting - Features von auf die neueste Version des Firebase CLI aktualisieren .

Schritt 2: Fügen Sie zusätzliche Websites

Fügen Sie einem Firebase-Projekt mithilfe einer der folgenden Methoden zusätzliche Sites hinzu:

  • Verwenden Sie den Workflow in der Hosting - Seite der Konsole Firebase

  • Verwenden Sie die Firebase CLI - Befehl: firebase hosting:sites:create SITE_ID

  • Verwenden Sie die Hosting - REST API: projects.sites.create

Für jede dieser Methoden finden Sie eine angeben SITE_ID , die verwendet wird , um die Firebase-bereitgestellten Standarddomänen für die Website zu erstellen:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

Da die SITE_ID für diese URLs verwendet wird, hat die Website - ID die folgenden Anforderungen:

  • Muss ein gültiges Host - Name - Label sein, das heißt es nicht enthalten kann . , _ , Usw.
  • Darf maximal 30 Zeichen lang sein
  • Muss innerhalb von Firebase global eindeutig sein

Zu jeder Website, können Sie auch optional hinzufügen benutzerdefinierte Domains den gleichen Inhalt und Konfiguration auf mehrere URLs zu dienen.

Löschen einer sekundären Site

Löschen Sie unerwünschte Websites aus einem Firebase-Projekt mit einer der folgenden Methoden:

  • Verwenden Sie den Workflow in der Hosting - Seite der Konsole Firebase

  • Verwenden Sie die Firebase CLI - Befehl: firebase hosting:sites:delete SITE_ID

  • Verwenden Sie den Hosting - REST API: projects.sites.delete

Beachten Sie, dass Sie die Standard - Website nicht löschen können, die die gleiche hat SITE_ID wie Ihr Projekt Firebase ID.

Schritt 3: Richten Sie deploy Ziele für Ihre Websites

Wenn Sie über mehrere Sites verfügen und Firebase-CLI-Bereitstellungsbefehle ausführen, muss die CLI eine Möglichkeit haben, mitzuteilen, welche Einstellungen für jede Site bereitgestellt werden sollen. Mit deploy Zielen können Sie eindeutig eine bestimmte Website mit einem identifizieren TARGET_NAME in Ihrer firebase.json Konfigurationsdatei und in Ihrer Firebase CLI - Befehlen zum Testen oder die Bereitstellung von auf Ihre Seiten.

Um ein deploy Ziel zu erstellen und anwenden TARGET_NAME zu einer Hosting - Website, führen Sie den folgenden CLI - Befehl aus dem Stammverzeichnis des Projektverzeichnisses:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Wo die Parameter sind:

  • TARGET_NAME - ein eindeutiger Name (die Sie selbst definiert haben) für die Hosting - Website , dass Sie den Einsatz zu

  • RESOURCE_IDENTIFIER - die SITE_ID für die Hosting - Website , wie in Ihrem Projekt aufgeführt Firebase

Zum Beispiel, wenn Sie zwei Standorten (erstellt haben myapp-blog und myapp-app ) in Ihrem Projekt Firebase, könnten Sie eine einzigartige Anwendung TARGET_NAME ( blog und app , respectively) an jedem Standort , indem Sie die folgenden Befehle:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Die Einstellungen für deploy Ziele werden in der gespeicherten .firebaserc Datei in Ihrem Projektverzeichnis, so dass Sie nur deploy Ziele einmal pro Projekt benötigen einzurichten.

Schritt 4: Definieren Sie die Hosting - Konfiguration für jeden Standort

Verwenden eines angelegten Website TARGET_NAME , wenn Sie definieren ihre Hosting - Konfiguration in Ihrer firebase.json Datei.

  • Wenn Ihre firebase.json Datei , um die Konfiguration für mehrere Standorte definiert, ein Array - Format verwenden:

    {
      "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 nur für eine Website , die die Konfiguration definiert, dann ist es nicht notwendig , ein Array - Format zu verwenden:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

Schritt 5: Test vor Ort, Vorschau ändert und deploy , um Ihre Websites

Führen Sie einen der folgenden Befehle im Stammverzeichnis Ihres lokalen Projektverzeichnisses aus.

Befehl Beschreibung
firebase emulators:start --only hosting Emuliert das Hosting Inhalt und Konfiguration der Standard - Hosting - Website zu einer lokal gehostet 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
Verteilt den Hosting Inhalt und Konfiguration der Standard - Hosting - Website in einer Vorschau - URL
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 Entsendet den Hosting - Gehalt und Konfiguration an den Live - Kanal in allen konfigurierten Hosting - Site firebase.json
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, die Verwendung emulators:start statt)
firebase serve --only hosting
Dient den Hosting - Inhalt und Konfiguration der Standard - Hosting - Website zu einer lokal gehostet URL
(nicht empfohlen, die Verwendung emulators:start statt)
firebase serve --only hosting: TARGET_NAME
Stellt den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Site unter einer lokal gehosteten URL bereit