Partager les ressources du projet sur plusieurs sites

Vous pouvez configurer un ou plusieurs sites d'hébergement Firebase dans un seul projet Firebase. Étant donné que les sites sont tous dans le même projet Firebase, tous les sites peuvent accéder aux autres ressources Firebase du projet.

En configurant plusieurs sites d'hébergement au sein du même projet Firebase, vous pouvez plus facilement partager des ressources Firebase entre des sites et des applications associés. Par exemple, si vous configurez votre blog, votre panneau d'administration et votre application publique en tant que sites individuels dans le même projet Firebase, ils peuvent tous partager la même base de données d'utilisateurs Firebase Authentication, tout en ayant leurs propres domaines ou contenus uniques.

Étape 1: Mettre à jour votre version Firebase CLI

Accès aux fonctions d' hébergement Firebase la plus récente en mise à jour vers la dernière version de la CLI Firebase .

Étape 2: Ajouter des sites supplémentaires

Ajoutez des sites supplémentaires à un projet Firebase à l'aide de l'une des méthodes suivantes :

  • Utilisez le flux de travail dans la Page d' hébergement de la console Firebase

  • Utilisez la commande Firebase CLI: firebase hosting:sites:create SITE_ID

  • Utilisez l'hébergement API REST: projects.sites.create

Pour chacune de ces méthodes, vous spécifiez un SITE_ID qui est utilisé pour construire les sous - domaines par défaut provisionnées Firebase pour le site:

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

Parce que le SITE_ID est utilisé pour ces URL, l'ID du site a les exigences suivantes:

  • Doit être une étiquette de nom d' hôte valide, ce qui signifie qu'il ne peut pas contenir . , _ , Etc.
  • Doit comporter 30 caractères ou moins
  • Doit être unique au monde dans Firebase

Pour chaque site, vous pouvez également en option ajouter des domaines personnalisés pour servir le même contenu et la configuration à plusieurs URL.

Supprimer un site secondaire

Supprimez les sites indésirables d'un projet Firebase à l'aide de l'une des méthodes suivantes :

  • Utilisez le flux de travail dans la Page d' hébergement de la console Firebase

  • Utilisez la commande Firebase CLI: firebase hosting:sites:delete SITE_ID

  • Utilisez l'hébergement API REST: projects.sites.delete

Notez que vous ne pouvez pas supprimer le site par défaut, qui a la même SITE_ID que votre ID Firebase de projet.

Etape 3: Mettre en place des cibles Déployez pour vos sites

Lorsque vous avez plusieurs sites et que vous exécutez les commandes de déploiement de la CLI Firebase, la CLI a besoin d'un moyen de communiquer les paramètres à déployer sur chaque site. Avec des objectifs de Déployez vous pouvez identifier de manière unique un site spécifique avec un TARGET_NAME dans votre firebase.json fichier de configuration et dans vos commandes CLI Firebase pour tester ou déployer sur vos sites.

Pour créer une cible de déploiement et d' appliquer un TARGET_NAME sur un site d' hébergement, exécutez la commande CLI suivante à partir de la racine de votre répertoire de projet:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Où sont les paramètres :

  • TARGET_NAME - pour le site d' hébergement d' un nom unique (que vous vous avez défini) que vous déployez à

  • RESOURCE_IDENTIFIER - le SITE_ID pour le site d' hébergement comme indiqué dans votre projet Firebase

Par exemple, si vous avez créé deux sites ( myapp-blog et myapp-app ) dans votre projet Firebase, vous pouvez appliquer un cadre unique TARGET_NAME ( blog et app à chaque site, respectivement) en exécutant les commandes suivantes:

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

Les paramètres des cibles de Déployez sont stockés dans le .firebaserc fichier dans votre répertoire de projet, donc il vous suffit de mettre en place des objectifs de Déployez une fois par projet.

Étape 4: Définir la configuration d' hébergement pour chaque site

Utilisez appliquée d'un site TARGET_NAME lorsque vous définissez sa configuration d' hébergement dans votre firebase.json fichier.

  • Si votre firebase.json fichier définit la configuration pour plusieurs sites, utilisez un format de tableau:

    {
      "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
        }
      ]
    }
    
  • Si votre firebase.json fichier définit la configuration pour un seul site, il est pas nécessaire d'utiliser un format de tableau:

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

Étape 5: Test local, aperçu change et Déployez vos sites

Exécutez l'une des commandes suivantes à partir de la racine de votre répertoire de projet local.

Commander La description
firebase emulators:start --only hosting Émule le contenu d' hébergement et la configuration du site par défaut d' hébergement à une URL hébergé localement
firebase emulators:start --only hosting: TARGET_NAME Émule le contenu d'hébergement et la configuration du site d'hébergement spécifié sur une URL hébergée localement
firebase hosting:channel:deploy \
CHANNEL_ID
Déploie le contenu d' hébergement et la configuration du site par défaut d' hébergement à une URL d'aperçu
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Déploie le contenu d'hébergement et la configuration du site d'hébergement spécifié sur une URL d'aperçu
firebase deploy --only hosting Déploie le contenu d' hébergement et de configuration à la chaîne en direct de tous les sites d' hébergement configurés dans firebase.json
firebase deploy --only hosting: TARGET_NAME Déploie le contenu et la configuration de l'hébergement sur le canal en direct du site d'hébergement spécifié
Commander La description
(non recommandé, l' utilisation des emulators:start à la place)
firebase serve --only hosting
Les données sont extraites d' hébergement et la configuration du site par défaut d' hébergement à une URL hébergé localement
(non recommandé, l' utilisation des emulators:start à la place)
firebase serve --only hosting: TARGET_NAME
Sert le contenu d'hébergement et la configuration du site d'hébergement spécifié sur une URL hébergée localement