Implementar en Firebase

En esta página, se explica cómo implementar aplicaciones en Firebase mediante Cloud Build. Si eres nuevo en Cloud Build, primero lee las guías de inicio rápido y la descripción general de la configuración de compilación.

Antes de comenzar

  • Habilita las APIs de Cloud Build, Firebase y Resource Manager.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

  • Para ejecutar los comandos de gcloud de esta página, instala Google Cloud CLI.

  • Mantén a mano el código fuente de tu aplicación incluido firebase.json. Tu código fuente debe almacenarse en un repositorio, como Cloud Source Repositories, GitHub o Bitbucket.

  • Si aún no tienes un proyecto para implementar en Firebase, puedes crear un proyecto predeterminado instalando y también inicializando Firebase.

Permisos de IAM obligatorios

  1. En la Google Cloud consola, ve a la página Permisos de Cloud Build:

    Ir a Permisos

  2. Selecciona la cuenta de servicio para tu compilación.

  3. Establece el estado de los siguientes roles en Habilitado:

    • Cuenta de servicio de Cloud Build | Permite que la cuenta de servicio heredada de Cloud Build actualice las compilaciones, escriba registros de compilación y almacene artefactos de compilación.
    • Administrador de Firebase | Permite que Cloud Build acceda a Firebase.
    • Visualizador de claves de API | Permite que Cloud Build acceda a la configuración actual de Firebase Hosting durante la implementación de la compilación.

Usa la imagen de Docker firebase

Cloud Build proporciona una imagen del compilador que se usa para invocar comandos firebase en Cloud Build. Para usar este compilador en un archivo de configuración de Cloud Build, puedes usar el paso de compilación firebase para implementar en Firebase:

  1. Crea un archivo de configuración de compilación llamado cloudbuild.yaml o cloudbuild.json donde PROJECT_ID es tu Google Cloud ID de proyecto y FIREBASE_PROJECT_ID es tu ID del proyecto de Firebase:

    YAML

    steps:
    - name: "us-docker.pkg.dev/firebase-cli/us/firebase"
       args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting']
    ## Or, target a specific version of firebase-tools
    - name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z
       args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting']
    

    JSON

    {
      "steps": [
       {
          "name": "us-docker.pkg.dev/firebase-cli/us/firebase",
          "args": [
             "deploy",
             "--project",
             "FIREBASE_PROJECT_ID",
             "--only",
             "hosting"
           ]
      }
      ]
    }
    

    Puedes elegir una versión específica de firebase-tools con
    name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z

  2. Usa este comando para comenzar a compilar con el archivo de configuración de compilación:

    gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    Aquí:

    • REGION es una de las regiones de compilación admitidas.
    • CONFIG_FILE_PATH es la ruta de acceso al archivo de configuración de compilación.
    • SOURCE_DIRECTORY es la ruta o la URL del código fuente.

Implementación continua

Puedes automatizar la implementación del software en Firebase si creas activadores de Cloud Build. Puedes configurar activadores para compilar y, luego, implementar imágenes cada vez que actualices tu código fuente.

Para automatizar tu implementación en Firebase, haz lo siguiente:

  1. En tu repositorio, agrega un archivo de configuración de compilación con pasos para invocar el firebase deploy comando, en el que PROJECT_ID es el ID de tu Google Cloud proyecto:

    YAML

    steps:
          - name: us-docker.pkg.dev/firebase-cli/us/firebase
            args: ['deploy', '--project=PROJECT_ID', '--only=hosting']
    

    JSON

    {
      "steps": [
       {
          "name": "us-docker.pkg.dev/firebase-cli/us/firebase",
          "args": [
             "deploy",
             "--project",
             "PROJECT_ID",
             "--only",
             "hosting"
           ]
      }
      ]
    }
    
  2. Crea un activador con el archivo de configuración de compilación generado en el paso anterior:

    1. Abre la página Activadores en la Google Cloud consola:

      Abrir la página Activadores

    2. Selecciona el proyecto en el menú desplegable del selector de proyectos, que se ubica en la parte superior de la página.

    3. Haz clic en Abrir.

    4. Haz clic en Crear activador.

      En la página Crear activador, ingresa la siguiente configuración:

      1. Ingresa un nombre para el activador.

      2. Selecciona el evento del repositorio para iniciar el activador.

      3. Selecciona el repositorio que contenga el código fuente y el archivo de configuración de compilación.

      4. Especifica la regex de la rama o el nombre de la etiqueta que iniciará el activador.

      5. Configuración: Elige el archivo de configuración de compilación que creaste con anterioridad.

    5. Haz clic en Crear para guardar el activador de compilación.

Cada vez que envíes código nuevo a tu repositorio, comenzarás a compilar y, luego, implementar en Firebase de forma automática.

Para obtener más información sobre cómo crear activadores de Cloud Build, consulta Crea y administra activadores de compilación.

Ejemplo de código

Para ver un muestra de código para implementar en Firebase con Cloud Build, consulta deploy-firebase-example.

¿Qué sigue?