Comparte los recursos de un proyecto en varios sitios

Puedes configurar uno o más sitios de Firebase Hosting en un solo proyecto de Firebase. Dado que los sitios están en el mismo proyecto de Firebase, estos pueden acceder a los demás recursos de Firebase del proyecto.

Si configuras varios sitios de Hosting en el mismo proyecto de Firebase, podrás compartir recursos de la plataforma con más facilidad entre apps y sitios relacionados. Por ejemplo, si configuras el blog, el panel de administración y la app pública como sitios individuales en el mismo proyecto de Firebase, podrán compartir la misma base de datos de usuarios de Firebase Authentication y tener dominios únicos o recursos estáticos.

Paso 1: Actualiza la versión de Firebase CLI

Actualiza a la versión más reciente de Firebase CLI para acceder a las funciones más recientes de Firebase Hosting.

Paso 2: Agrega sitios adicionales

Agrega sitios adicionales a un proyecto de Firebase directamente desde tu página de Firebase Hosting. También puedes agregar dominios personalizados a cada sitio para que entreguen el mismo contenido y configuración en varias URL.

Borra un sitio secundario

Puedes borrar los sitios no deseados directamente desde la página de Firebase Hosting. Ten en cuenta que no puedes borrar el sitio predeterminado, que tiene el mismo nombre que tu ID del proyecto de Firebase.

Paso 3: Configura destinos de implementación para tus sitios

Si tienes varios sitios y ejecutas comandos de implementación de Firebase CLI, la CLI necesita un medio para dar a conocer la configuración que debe implementarse a cada sitio. Con los destinos de implementación, puedes identificar únicamente un sitio específico por su parámetro target name en el archivo de configuración firebase.json y en los comandos de Firebase CLI para realizar pruebas o implementaciones en tus sitios.

Para crear un destino de implementación y aplicar un parámetro target name en un sitio de Hosting, ejecuta el siguiente comando de la CLI desde la raíz del directorio del proyecto:

firebase target:apply hosting target-name resource-name

Los parámetros son los siguientes:

  • target-name: Es un identificador único, que tú mismo definiste, del sitio de Hosting en el que deseas realizar la implementación.

  • resource-name: Es el nombre del sitio de Hosting tal como aparece en tu proyecto de Firebase.

Por ejemplo, si creaste dos sitios (myapp-blog y myapp-app) en tu proyecto de Firebase, puedes aplicar un parámetro target-name único a cada sitio (blog y app, respectivamente) mediante la ejecución de los siguientes comandos:

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

La configuración de los destinos de implementación se almacena en el archivo .firebaserc del directorio de tu proyecto, de manera que solo es necesario configurar destinos de implementación una vez por proyecto.

Paso 4: Define la configuración de hosting para cada sitio

Usa el parámetro target-name de un sitio cuando definas su configuración de hosting en el archivo firebase.json.

  • Si el archivo firebase.json define la configuración de varios sitios, usa un formato de arreglo como se indica a continuación:

    {
      "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 tu archivo firebase.json define la configuración de un solo sitio, no es necesario usar un formato de arreglo, como se indica a continuación:

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

Paso 5: Implementa en tus sitios o entrega de forma local

Ejecuta cualquiera de los siguientes comandos desde la raíz del directorio de tu proyecto:

Comando Descripción
firebase deploy Crea una liberación de todos los recursos del directorio del proyecto que pueden implementarse.
firebase deploy --only hosting:target-name Crea una liberación solo de los recursos del objetivo de Hosting especificado.
firebase serve Ejecuta tu proyecto de Firebase de manera local.
firebase serve --only hosting:target-name Entrega de manera local solo los recursos del destino de Hosting especificado.