Vous pouvez configurer un ou plusieurs Firebase Hosting sites dans un même projet Firebase. Comme tous les sites se trouvent dans le même projet Firebase, ils peuvent tous accéder aux autres ressources Firebase du projet.
- Chaque site possède sa propre configuration d'hébergement.
- Chaque site héberge sa propre collection de contenus.
- Chaque site peut avoir un ou plusieurs domaines associés.
En configurant plusieurs sites Hosting dans le 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 Firebase Authentication base de données utilisateur, tout en ayant leurs propres domaines ou contenus uniques.
Étape 1 : Mettre à jour votre version de l'interface de ligne de commande Firebase
Accédez aux dernières fonctionnalités Firebase Hosting en passant à la dernière version de l'interface de ligne de commande 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 workflow de la Hosting & Serverless > Hosting page de la console Firebase.
Utilisez la commande de l'interface de ligne de commande Firebase :
firebase hosting:sites:create SITE_IDUtilisez l'Hosting API REST :
projects.sites.create
Pour chacune de ces méthodes, vous spécifiez un SITE_ID qui est utilisé pour créer les sous-domaines par défaut provisionnés par Firebase pour le site :
SITE_ID.web.appSITE_ID.firebaseapp.com
Étant donné que le SITE_ID est utilisé pour ces URL, l'ID de site doit répondre aux exigences suivantes :
- Il doit s'agir d'une étiquette de nom d'hôte valide, ce qui signifie qu'il ne peut pas contenir de
., de_, etc. - Il doit comporter 30 caractères ou moins.
- Il doit être globalement unique dans Firebase.
Supprimer un site secondaire
Supprimez les sites indésirables d'un projet Firebase à l'aide de l'une des méthodes suivantes :
Utilisez le workflow de la Hosting & Serverless > Hosting page de la console Firebase.
Utilisez la commande de l'interface de ligne de commande Firebase :
firebase hosting:sites:delete SITE_IDUtilisez l'Hosting API REST :
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 : Configurer des cibles de déploiement pour vos sites
Lorsque vous avez plusieurs sites et que vous exécutez des commandes de déploiement de l'interface de ligne de commande Firebase, celle-ci doit pouvoir 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 Firebase de l'interface de ligne de commande pour
tester ou déployer sur vos sites.
Pour créer une cible de déploiement et appliquer un TARGET_NAME à un site Hosting, exécutez
la commande de l'interface de ligne de commande suivante à partir de la racine du répertoire de votre projet :
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Où les paramètres sont les suivants :
TARGET_NAME : nom unique (que vous avez défini vous-même) pour le Hosting site sur lequel vous effectuez le déploiement
RESOURCE_IDENTIFIER :
SITE_IDdu site Hosting tel qu'il apparaît 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 du répertoire de votre projet. Vous n'avez donc besoin de configurer les cibles de déploiement qu'une seule fois par projet.
Étape 4 : Définir la configuration d'hébergement pour chaque site
Utilisez le TARGET_NAME appliqué d'un site lorsque vous définissez sa configuration d'hébergement
dans votre
firebase.json fichier.
Si votre fichier
firebase.jsondéfinit la configuration de 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.jsonne définit la configuration que d'un seul site, il n'est pas nécessaire d'utiliser un format de tableau :{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Étape 5 : Tester localement, prévisualiser les modifications et déployer sur vos sites
Exécutez l'une des commandes suivantes à partir de la racine du répertoire de votre projet en local.
| Commande | Description |
|---|---|
firebase emulators:start --only hosting |
Émule le Hosting contenu et la configuration du site par défaut Hosting sur une URL hébergée localement . |
firebase emulators:start --only hosting:TARGET_NAME |
Émule le contenu et la configuration Hosting du site Hosting spécifié sur une URL hébergée localement. |
firebase hosting:channel:deploy \ |
Déploie le Hosting contenu et la configuration du par défaut Hosting site sur une URL de prévisualisation. |
firebase hosting:channel:deploy \ |
Déploie le contenu et la configuration Hosting du site Hosting spécifié sur une URL de prévisualisation. |
firebase deploy --only hosting |
Déploie le Hosting contenu et la configuration sur le canal actif
de tous les sites Hosting configurés dans
firebase.json
|
firebase deploy --only hosting:TARGET_NAME |
Déploie le contenu et la configuration Hosting sur le canal actif du site Hosting spécifié. |
| Commande | Description |
|---|---|
(non recommandé ; utilisez plutôt emulators:start instead)firebase serve --only hosting
|
Diffuse le contenu et la configuration Hosting du site par défaut Hosting sur une URL hébergée localement |
(non recommandé ; utilisez plutôt emulators:start instead)firebase serve --only hosting:TARGET_NAME
|
Diffuse le contenu et la configuration Hosting du site Hosting spécifié sur une URL hébergée localement. |