Projektressourcen über mehrere Standorte hinweg gemeinsam nutzen

Sie können eine oder mehrere Firebase Hosting-Websites in einem einzigen Firebase-Projekt einrichten. Da sich die Websites alle im selben Firebase-Projekt befinden, können alle Websites auf die anderen Firebase-Ressourcen des Projekts zugreifen.

Wenn Sie mehrere Hosting-Websites innerhalb desselben Firebase-Projekts einrichten, können Sie Firebase-Ressourcen einfacher für ähnliche Websites und Apps freigeben. Wenn du beispielsweise deinen Blog, dein Admin-Bereich und deine öffentliche App als einzelne Websites im selben Firebase-Projekt einrichtest, können sie alle dieselbe Firebase Authentication-Nutzerdatenbank nutzen und gleichzeitig ihre eigenen eindeutigen Domains oder Inhalte haben.

Schritt 1: Firebase-Befehlszeile aktualisieren

Wenn Sie auf die neuesten Firebase Hosting-Features zugreifen möchten, aktualisieren Sie auf die neueste Version der Firebase-Befehlszeile.

Schritt 2: Zusätzliche Websites hinzufügen

Fügen Sie mit einer der folgenden Methoden zusätzliche Websites zu einem Firebase-Projekt hinzu:

  • Workflow auf der Seite Hosting der Firebase-Konsole verwenden

  • Verwenden Sie den Befehl Firebase in der Befehlszeile: firebase hosting:sites:create SITE_ID

  • Hosting REST API verwenden: projects.sites.create

Für jede dieser Methoden geben Sie eine SITE_ID an, mit der die von Firebase bereitgestellten Standardsubdomains für die Website erstellt werden:

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

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

  • Muss ein gültiges Hostnamenlabel sein, das heißt, es darf keine ., _ usw. enthalten.
  • Darf höchstens 30 Zeichen lang sein
  • Muss global eindeutig sein

Sie können jeder Website optional benutzerdefinierte Domains hinzufügen, um denselben Inhalt und dieselbe Konfiguration für mehrere URLs bereitzustellen.

Sekundäre Website löschen

Sie haben folgende Möglichkeiten, unerwünschte Websites aus einem Firebase-Projekt zu löschen:

  • Workflow auf der Seite Hosting der Firebase-Konsole verwenden

  • Verwenden Sie den Befehl Firebase in der Befehlszeile: firebase hosting:sites:delete SITE_ID

  • Hosting REST API verwenden: projects.sites.delete

Die Standardwebsite, die dieselbe SITE_ID wie Ihre Firebase-Projekt-ID hat, kann nicht gelöscht werden.

Schritt 3: Bereitstellungsziele für Ihre Websites einrichten

Wenn Sie mehrere Standorte haben und Firebase-Befehlszeilen-Bereitstellungsbefehle ausführen, muss die Befehlszeile kommunizieren können, welche Einstellungen für die einzelnen Standorte bereitgestellt werden sollen. Mit Bereitstellungszielen können Sie eine bestimmte Website mit einer TARGET_NAME in Ihrer firebase.json-Konfigurationsdatei und in Ihren Firebase CLI-Befehlen zum Testen oder Bereitstellen auf Ihren Websites eindeutig identifizieren.

Wenn Sie ein Bereitstellungsziel erstellen und eine TARGET_NAME auf eine Hosting-Website anwenden möchten, führen Sie den folgenden Befehl im Stammverzeichnis Ihres Projektverzeichnisses aus:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Die Parameter sind:

  • TARGET_NAME: Ein eindeutiger Name (von Ihnen definiert), der für die Hosting-Website verwendet wird, auf der Sie die Bereitstellung vornehmen.

  • RESOURCE_IDENTIFIER: Der SITE_ID fü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 auf jede Website eine eindeutige TARGET_NAME (blog bzw. app) anwenden. Dazu führen Sie die folgenden Befehle aus:

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

Die Einstellungen für Deployment-Ziele werden in Ihrem Projektverzeichnis in der Datei .firebaserc gespeichert. Sie müssen Bereitstellungsziele also nur einmal pro Projekt einrichten.

Schritt 4: Hostingkonfiguration für jede Website definieren

Verwenden Sie die für eine Website angewendete TARGET_NAME, wenn Sie die Hostingkonfiguration in der Datei firebase.json definieren.

  • Wenn die firebase.json-Datei die Konfiguration für mehrere Websites definiert, verwenden Sie ein Arrayformat:

    {
      "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 nur für eine Website definiert ist, ist es nicht erforderlich, ein Arrayformat zu verwenden:

    {
      "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 den Hosting-Inhalt und die Konfiguration der default-Hosting-Website an einer lokal gehosteten URL
firebase emulators:start --only hosting:TARGET_NAME Emuliert den Hosting-Inhalt und die Konfiguration der angegebenen Hosting-Website unter einer lokal gehosteten URL
firebase hosting:channel:deploy \
CHANNEL_ID
Die Hosting-Inhalte und die Konfiguration der Standard-Hosting-Website werden unter einer Vorschau-URL bereitgestellt.
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Die Hosting-Inhalte und die Konfiguration der angegebenen Hosting-Website werden unter einer Vorschau-URL bereitgestellt.
firebase deploy --only hosting Stellt den Inhalt und die Konfiguration von Hosting im Live-Kanal von allen Hosting-Websites bereit, die in firebase.json konfiguriert sind
firebase deploy --only hosting:TARGET_NAME Die Hosting-Inhalte und ‑Konfiguration werden auf dem Livekanal der angegebenen Hosting-Website bereitgestellt.
Befehl Beschreibung
(nicht empfohlen; stattdessen emulators:start verwenden)
firebase serve --only hosting
Stellt die Hosting-Inhalte und die Konfiguration der Standard-Hosting-Website unter einer lokal gehosteten URL bereit
(nicht empfohlen; stattdessen emulators:start verwenden)
firebase serve --only hosting:TARGET_NAME
Stellt die Hosting-Inhalte und die Konfiguration der angegebenen Hosting-Website unter einer lokal gehosteten URL bereit