Reutiliza la configuración de extensiones de un proyecto

Después de instalar y configurar extensiones en un proyecto de Firebase, puedes guardar la configuración e implementarla en otro proyecto. La configuración guardada tiene información sobre todas las instancias de extensión que instalaste, incluidos sus versiones y los valores de parámetro que especificaste cuando las instalaste.

Esto tiene varios usos posibles:

  • Volver a crear la configuración de extensiones de un proyecto en otros proyectos
  • Compartir la configuración de tus extensiones con otras personas
  • Confirmar la configuración de las extensiones para el control de fuentes
  • Agregar tus extensiones a la canalización de CI/CD

Guarda la configuración de extensiones de un proyecto

Sigue estos pasos para guardar la configuración de extensiones de un proyecto:

  1. Si aún no lo has hecho, configura Firebase CLI.
  2. Desde un símbolo del sistema de shell, cambia al directorio del proyecto (este contiene el archivo firebase.json).
  3. Ejecuta el comando ext:export:
    firebase ext:export –-project=YOUR_PROJECT_ID

El comando ext:export agregará una sección extensions al archivo firebase.json. Por ejemplo:

{
 "extensions": {
   "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
   "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
 }
}

Además, el comando ext:export crea un directorio extensions que contiene un archivo .env para cada instancia de extensión que instalaste. Estos archivos incluyen los parámetros de configuración de cada instancia. Por ejemplo, una instancia de storage-resize-images podría tener un archivo .env como el siguiente:

IMAGE_TYPE=jpeg
LOCATION=us-central1
IMG_BUCKET=${param:PROJECT_ID}.appspot.com
IMG_SIZES=100x100
DELETE_ORIGINAL_FILE=false

Implementa un parámetro de configuración de extensiones en un proyecto

Después de guardar la configuración de extensiones de un proyecto, puedes implementarla en otro mediante Firebase CLI. Cuando implementas una configuración de extensiones, instalas, actualizas y configuras de una sola vez todas las instancias de extensiones guardadas en la configuración de un proyecto.

Para implementar una configuración de extensiones, haz lo siguiente:

  1. Desde un mensaje de shell, cámbiate al directorio que contiene la configuración de las extensiones guardadas. Este es el directorio que contiene firebase.json. Si acabas de ejecutar ext:export, ya estás en el directorio correcto.
  2. Ejecuta el comando deploy y especifica el proyecto en el que quieres implementar las extensiones:
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

El comando deploy validará la configuración de cada instancia, te preguntará si quieres borrar alguna instancia de extensión del proyecto de destino que no aparezca en firebase.json y, luego, implementará todas las instancias de extensión.

Parámetros de configuración de extensiones específicos del proyecto

La configuración de las extensiones guardadas se puede utilizar para implementarse en varios proyectos diferentes, por ejemplo, un proyecto de etapa de pruebas y otro de producción. Cuando lo hagas, es posible que algunos valores de parámetros deban ser diferentes para cada proyecto. Esto es posible gracias a los archivos .env específicos del proyecto. Los valores de parámetros que son diferentes entre los proyectos se pueden colocar en extensions/${extensionInstanceId}.env.${projectIdOrAlias}, y los valores de parámetros compartidos se pueden incluir en extensions/${extensionInstanceId}.env.