Vous pouvez configurer un ou plusieurs sites d'hébergement Firebase dans un seul projet Firebase. Comme les sites sont tous dans le même projet Firebase, tous les sites peuvent accéder aux autres ressources Firebase du projet.
- Chaque site a sa propre configuration d'hébergement .
- Chaque site héberge sa propre collection de contenu.
- Chaque site peut avoir un ou plusieurs domaines associés .
En configurant plusieurs sites d'hébergement dans le même projet Firebase, vous pouvez partager plus facilement les ressources Firebase entre des sites et des applications connexes. 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 : Mettez à jour votre version de la CLI Firebase
Accédez aux fonctionnalités Firebase Hosting les plus récentes en mettant à jour la dernière version de la CLI Firebase .
Étape 2 : Ajouter des sites supplémentaires
Ajoutez des sites supplémentaires à un projet Firebase en utilisant l'une des méthodes suivantes :
Utiliser le workflow de la page Hébergement de la console Firebase
Utilisez la commande Firebase CLI :
firebase hosting:sites:create SITE_ID
Utilisez l'API REST d'hébergement :
projects.sites.create
Pour chacune de ces méthodes, vous spécifierez un SITE_ID
qui est utilisé pour construire les sous-domaines par défaut fournis par Firebase pour le site :
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Étant donné que SITE_ID
est utilisé pour ces URL, l'ID de site doit répondre aux exigences suivantes :
- Doit être une étiquette de nom d'hôte valide, ce qui signifie qu'elle ne peut pas contenir
.
,_
, etc - Doit contenir 30 caractères ou moins
- Doit être unique au monde dans Firebase
Pour chaque site, vous pouvez également éventuellement ajouter des domaines personnalisés pour servir le même contenu et la même 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 :
Utiliser le workflow de la page Hébergement de la console Firebase
Utilisez la commande Firebase CLI :
firebase hosting:sites:delete SITE_ID
Utilisez l'API REST d'hébergement :
projects.sites.delete
Notez que vous ne pouvez pas supprimer le site par défaut, qui a le même SITE_ID
que votre ID de projet Firebase.
Étape 3 : Configurez des cibles de déploiement 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 les cibles de déploiement, vous pouvez identifier de manière unique un site spécifique avec un TARGET_NAME
dans votre fichier de configuration firebase.json
et dans vos commandes CLI Firebase pour tester ou déployer sur vos sites.
Pour créer une cible de déploiement et appliquer un TARGET_NAME
à 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ù les paramètres sont :
TARGET_NAME — un nom unique (que vous avez défini vous-même) pour le site d'hébergement sur lequel vous déployez
RESOURCE_IDENTIFIER - le
SITE_ID
du site d'hébergement tel qu'il est répertorié 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 TARGET_NAME
unique ( blog
et app
, respectivement) à chaque site 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éploiement sont stockés dans le fichier .firebaserc
de votre répertoire de projet, vous n'avez donc besoin de configurer les cibles de déploiement qu'une seule fois par projet.
Etape 4 : Définir la configuration d'hébergement pour chaque site
Utilisez TARGET_NAME
appliqué à un site lorsque vous définissez sa configuration d'hébergement dans votre fichier firebase.json
.
Si votre fichier
firebase.json
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 fichier
firebase.json
définit la configuration pour un seul site, il n'est pas nécessaire d'utiliser un format de tableau :{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Étape 5 : Testez localement, prévisualisez les modifications et déployez-les sur vos sites
Exécutez l'une des commandes suivantes à partir de la racine de votre répertoire de projet local.
Commande | Description |
---|---|
firebase emulators:start --only hosting | Émule le contenu d'hébergement et la configuration du site d'hébergement par défaut sur une URL hébergée 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 \ | Déploie le contenu d'hébergement et la configuration du site d'hébergement par défaut sur une URL d'aperçu |
firebase hosting:channel:deploy \ | Déploie le contenu d'hébergement et la configuration du site d'hébergement spécifié à une URL d'aperçu |
firebase deploy --only hosting | Déploie le contenu et la configuration de l'hébergement sur le canal 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é |
Commande | Description |
---|---|
(non recommandé ; utilisez emulators:start à la place)firebase serve --only hosting | Sert le contenu d'hébergement et la configuration du site d'hébergement par défaut sur une URL hébergée localement |
(non recommandé ; utilisez 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é à une URL hébergée localement |