Projektressourcen über mehrere Standorte hinweg gemeinsam nutzen

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

Wenn Sie im selben Firebase-Projekt mehrere Hosting-Websites einrichten, können Firebase-Ressourcen einfacher für ähnliche Websites und Apps freigeben. Für Wenn Sie beispielsweise Ihren Blog, Ihr Admin-Steuerfeld und Ihre öffentliche App als einzelne und Websites im selben Firebase-Projekt Firebase Authentication-Nutzerdatenbank und ihre eigenen eindeutigen Domains oder Inhalte.

Schritt 1: Firebase-CLI-Version aktualisieren

Wenn Sie auf die neuesten Firebase Hosting-Funktionen zugreifen möchten, aktualisieren Sie die Firebase CLI auf die neueste Version.

Schritt 2: Weitere Websites hinzufügen

Sie können einem Firebase-Projekt mit einer der folgenden Methoden weitere Websites hinzufügen:

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

  • Verwenden Sie den Befehl Firebase über die Befehlszeile: 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 von die von Firebase bereitgestellten Standard-Subdomains für die Website:

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

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

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

Für jede Website können Sie auch optional Benutzerdefinierte Domains hinzufügen, um dieselben Inhalte und Konfiguration auf mehrere URLs.

Sekundäre Website löschen

So löschen Sie unerwünschte Websites aus einem Firebase-Projekt: Methoden:

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

  • Verwenden Sie den Befehl Firebase über die Befehlszeile: firebase hosting:sites:delete SITE_ID

  • Hosting REST API verwenden: projects.sites.delete

Beachten Sie, dass Sie die Standardwebsite nicht löschen können, da sie dieselbe SITE_ID hat wie Ihre Firebase-Projekt-ID.

Schritt 3: Bereitstellungsziele für Ihre Websites einrichten

Wenn Sie mehrere Standorte haben und Firebase-Befehlszeilen-Bereitstellungsbefehle ausführen, Die Befehlszeile benötigt eine Möglichkeit, um zu kommunizieren, welche Einstellungen für die einzelnen Nutzer bereitgestellt werden sollen Website. Mit Bereitstellungszielen können Sie eine bestimmte Website mit einem TARGET_NAME in Ihrem firebase.json-Konfigurationsdatei und in Ihren Firebase CLI-Befehlen für auf Ihren Websites testen oder bereitstellen.

Führen Sie folgenden Befehl aus, um ein Bereitstellungsziel zu erstellen und ein TARGET_NAME auf eine Hosting-Website anzuwenden folgenden CLI-Befehl aus dem Stammverzeichnis Ihres Projektverzeichnisses:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Die Parameter sind:

  • TARGET_NAME: ein eindeutiger, von Ihnen selbst definierter Name für die Hosting Website, auf der die Bereitstellung erfolgt

  • RESOURCE_IDENTIFIER: 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 können Sie eine eindeutige TARGET_NAME (blog und app) zu jeder Website hinzufügen. 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 Bereitstellungsziele werden in der Datei .firebaserc in Ihrem Projektverzeichnis. Daher müssen Sie Bereitstellungsziele nur einmal pro Projekt arbeiten.

Schritt 4: Hostingkonfiguration für jede Website definieren

Beim Definieren des Hostings einer Website den angewendeten TARGET_NAME verwenden Konfiguration in Ihrem Datei firebase.json

  • Wenn Ihre firebase.json-Datei die Konfiguration für mehrere Websites 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 deine firebase.json-Datei die Konfiguration nur für eine Website definiert, ist es nicht notwendig, ein Array-Format 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 Standard-Hosting-Website unter einer lokal gehosteten URL
firebase emulators:start --only hosting:TARGET_NAME Emuliert den Hosting-Inhalt und die Konfiguration des 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
Stellt den Hosting-Inhalt und die Konfiguration des angegebenen Hosting Website unter einer Vorschau-URL
firebase deploy --only hosting Stellt den Inhalt und die Konfiguration von Hosting im Live-Kanal bereit von allen Hosting Websites konfiguriert in firebase.json
firebase deploy --only hosting:TARGET_NAME Stellt den Inhalt und die Konfiguration von Hosting im Live-Kanal bereit der angegebenen Hosting Website
Befehl Beschreibung
(nicht empfohlen; stattdessen emulators:start verwenden)
firebase serve --only hosting
Stellt den Hosting-Inhalt und die Konfiguration des default Hosting-Website auf einer lokal gehosteten URL
(nicht empfohlen; stattdessen emulators:start verwenden)
firebase serve --only hosting:TARGET_NAME
Stellt den Hosting-Inhalt und die Konfiguration des angegebenen Hosting-Website unter einer lokal gehosteten URL