Referencia de Firebase CLI

Firebase CLI (GitHub) proporciona una variedad de herramientas para administrar, implementar y visualizar en proyectos de Firebase.

Antes de usar Firebase CLI, configura un proyecto de Firebase.

Configura o actualiza la CLI

Instala la CLI de Firebase.

Puedes instalar Firebase CLI con un método que coincida con tu sistema operativo, nivel de experiencia o caso de uso. Sin importar cómo la instales, tendrás acceso a las mismas funciones y al comando firebase.

Windows macOS Linux

Windows

Puedes instalar Firebase CLI para Windows con una de las siguientes opciones:

Opción Descripción Casos recomendados
objeto binario independiente Descarga el objeto binario independiente de la CLI. Luego, accede al ejecutable para abrir un shell en el que podrás ejecutar el comando firebase. Desarrolladores nuevos

Desarrolladores nuevos que no usan Node.js o que no están familiarizados con él
npm Usa npm (Node Package Manager) para instalar la CLI y habilitar el comando firebase disponible de manera global. Desarrolladores que usan Node.js

objeto binario independiente

Para descargar y ejecutar el objeto binario de Firebase CLI, sigue estos pasos:

  1. Descarga el objeto binario de Firebase CLI para Windows.

  2. Accede al objeto binario para abrir un shell en el que puedes ejecutar el comando firebase.

  3. Continúa para acceder y probar la CLI.

npm

Puedes usar npm (Node Package Manager) para instalar Firebase CLI mediante estos pasos:

  1. Instala Node.js con nvm-windows (Node Version Manager). Cuando lo hagas, se instalarán automáticamente las herramientas de comando de npm.

  2. Ejecuta el siguiente comando para instalar Firebase CLI a través de npm:

    npm install -g firebase-tools

    Esto habilita el comando firebase disponible de manera global.

  3. Continúa para acceder y probar la CLI.

macOS o Linux

Puedes instalar Firebase CLI para macOS o Linux con una de las siguientes opciones:

Opción Descripción Casos recomendados
secuencia de comandos de instalación automática Ejecuta un solo comando que detecta automáticamente tu sistema operativo, descarga la versión más reciente de la CLI y habilita el comando firebase disponible de manera global. Desarrolladores nuevos

Desarrolladores que no usan Node.js o no están familiarizados con él

Implementaciones automatizadas en un entorno de CI/CD
objeto binario independiente Descarga el objeto binario independiente de la CLI. Luego, puedes configurar y ejecutar el objeto binario a fin de adaptarlo a tu flujo de trabajo. Flujos de trabajo completamente personalizables con la CLI
npm Usa npm (Node Package Manager) para instalar la CLI y habilitar el comando firebase disponible de manera global. Desarrolladores que usan Node.js

secuencia de comandos de instalación automática

Puedes usar la secuencia de comandos de instalación automática para instalar Firebase CLI mediante estos pasos:

  1. Ejecuta el siguiente comando de cURL:

    curl -sL https://firebase.tools | bash

    Esta secuencia de comandos detecta automáticamente tu sistema operativo, descarga la versión más reciente de Firebase CLI y habilita el comando firebase disponible de manera global.

  2. Continúa para acceder y probar la CLI.

Si quieres ver más ejemplos y detalles sobre la secuencia de comandos de instalación automática, consulta el código fuente de la secuencia de comandos en firebase.tools.

objeto binario independiente

Sigue estos pasos a fin de descargar y ejecutar el objeto binario de Firebase CLI específico para tu SO:

  1. Descarga el objeto binario de Firebase CLI para tu SO: macOS | Linux

  2. Configura el comando firebase disponible de manera global (opcional).

    1. Ejecuta chmod +x ./firebase_tools para que el objeto binario sea ejecutable.
    2. Agrega la ruta de acceso del objeto binario a tu variable de entorno PATH.
  3. Continúa para acceder y probar la CLI.

npm

Puedes usar npm (Node Package Manager) para instalar Firebase CLI mediante estos pasos:

  1. Instala Node.js con nvm (Node Version Manager).
    Cuando lo hagas, se instalarán automáticamente las herramientas de comando de npm.

  2. Ejecuta el siguiente comando para instalar Firebase CLI a través de npm:

    npm install -g firebase-tools

    Esto habilita el comando firebase disponible de manera global.

  3. Continúa para acceder y probar la CLI.

Accede y prueba Firebase CLI

Debes autenticarte después de instalar la CLI. Para confirmar la autenticación, puedes enumerar tus proyectos de Firebase.

  1. Accede a Firebase con tu Cuenta de Google ejecutando el siguiente comando:

    firebase login

    Este comando conecta tu máquina local a Firebase y te otorga acceso a los proyectos de Firebase.

  2. Enumera tus proyectos de Firebase para probar que se instaló correctamente la CLI y que accediste a tu cuenta. Ejecuta el siguiente comando:

    firebase projects:list

    La lista que se muestra debe ser la misma que los proyectos de Firebase enumerados en Firebase console.

Actualiza a la versión más reciente de la CLI

En general, se recomienda usar la versión más actualizada de Firebase CLI.

La forma de actualizar la versión de la CLI depende del sistema operativo y de cómo instalaste esta herramienta.

Windows

  • objeto binario independiente: Descarga la versión nueva y reemplázala en tu sistema.
  • npm: Ejecuta npm install -g firebase-tools.

macOS

  • secuencia de comandos de instalación automática: Ejecuta curl -sL https://firebase.tools | upgrade=true bash.
  • objeto binario independiente: Descarga la versión nueva y reemplázala en tu sistema.
  • npm: Ejecuta npm install -g firebase-tools.

Linux

  • secuencia de comandos de instalación automática: Ejecuta curl -sL https://firebase.tools | upgrade=true bash.
  • objeto binario independiente: Descarga la versión nueva y reemplázala en tu sistema.
  • npm: Ejecuta npm install -g firebase-tools.

Usa la CLI con sistemas de CI

Firebase CLI requiere un navegador para completar la autenticación, pero esta herramienta es totalmente compatible con la IC y otros entornos sin interfaz gráfica.

  1. Instala Firebase CLI en una máquina que cuente con un navegador.

  2. Para iniciar el proceso de acceso, ejecuta el siguiente comando:

    firebase login:ci
  3. Visita la URL proporcionada y, luego, accede con una Cuenta de Google.

  4. Imprime un token de actualización nuevo. La sesión de la CLI actual no se verá afectada.

  5. Almacena el token de salida de forma segura pero accesible en tu sistema de CI.

  6. Úsalo cuando ejecutes comandos firebase. Puedes utilizar cualquiera de estas dos opciones:

    • Opción 1: Almacena el token como la variable de entorno FIREBASE_TOKEN. El sistema usará el token automáticamente.

    • Opción 2: Ejecuta todos los comandos firebase con la marca --token TOKEN en tu sistema de CI.
      El orden de prioridad para la carga de tokens es el siguiente: marca, variable de entorno y proyecto de Firebase deseado.

Inicializa un proyecto de Firebase

Muchas de las tareas comunes que se realizan con la CLI, como implementarla en un proyecto de Firebase, requieren un directorio del proyecto. Este directorio se establece con el comando firebase init. Por lo general, el directorio del proyecto es el mismo que la raíz del control de fuente y, después de ejecutar firebase init, este contendrá un archivo de configuración firebase.json.

Para inicializar un proyecto de Firebase nuevo, ejecuta el siguiente comando desde el directorio de tu app:

firebase init

El comando firebase init te guía paso a paso en la configuración del directorio del proyecto y algunos productos de Firebase. Durante la inicialización del proyecto, Firebase CLI te solicita lo siguiente:

  • Que selecciones los productos de Firebase que quieras configurar en un proyecto de Firebase.

    Hacer esto permite establecer la configuración de archivos específicos de los productos seleccionados. Para obtener más detalles sobre estas configuraciones, consulta la documentación de cada producto (por ejemplo, Hosting). Ten en cuenta que siempre puedes ejecutar firebase init más tarde para configurar más productos de Firebase.

  • Que selecciones un proyecto predeterminado de Firebase.

    En este paso, se asocia el directorio del proyecto actual con un proyecto de Firebase, de modo que los comandos específicos del proyecto (como firebase deploy) se ejecuten en relación con el proyecto de Firebase correcto.

    También es posible asociar varios proyectos de Firebase (como un proyecto en etapa de pruebas y uno en producción) con el mismo directorio de proyecto.

Al final de la inicialización, Firebase crea y agrega automáticamente dos archivos a la raíz del directorio local de apps:

  • Un archivo de configuración firebase.json que contiene la configuración del proyecto

  • Un archivo .firebaserc en el que se almacenan los alias del proyecto

El archivo firebase.json

El comando firebase init crea un archivo de configuración firebase.json en la raíz del directorio del proyecto.

El archivo firebase.json es obligatorio para implementar recursos con Firebase CLI, ya que especifica qué archivos y qué configuración del directorio del proyecto se deben implementar en el proyecto de Firebase. Como algunas opciones de configuración se pueden definir en el directorio del proyecto o en Firebase console, asegúrate de resolver cualquier posible conflicto de implementación.

Puedes configurar la mayoría de las opciones de Firebase Hosting directamente en el archivo firebase.json. Sin embargo, en el caso de otros servicios de Firebase que pueden implementarse con Firebase CLI, el comando firebase init crea archivos específicos en los que puedes definir la configuración de esos servicios, como un archivo index.js para Cloud Functions. También puedes configurar hooks previos o posteriores a la implementación en el archivo firebase.json.

El siguiente es un archivo firebase.json de ejemplo que contiene la configuración predeterminada si seleccionas Firebase Hosting, Cloud Firestore y Cloud Functions for Firebase (con las opciones de source y lint de TypeScript seleccionadas) durante la inicialización.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Si bien firebase.json se usa de forma predeterminada, puedes pasar la marca --config PATH para especificar un archivo de configuración alternativo.

Configuración de varias bases de datos de Cloud Firestore

Cuando ejecutes firebase init, tu archivo firebase.json contendrá una única clave firestore correspondiente a la base de datos predeterminada de tu proyecto, como se muestra arriba.

Si tu proyecto contiene varias bases de datos de Cloud Firestore, edita tu archivo firebase.json para asociar diferentes Cloud Firestore Security Rules y archivos fuente de índice de base de datos a cada base de datos. Modifica el archivo con un array JSON, con una entrada para cada base de datos.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Archivos de Cloud Functions que se ignorarán durante la implementación

En el momento de la implementación de la función, la CLI especifica automáticamente una lista de archivos en el directorio functions que se ignorarán. Esto impide la implementación en los archivos externos de backend que podrían aumentar el tamaño de los datos de la implementación.

La lista de archivos ignorados de forma predeterminada, que se muestra en formato JSON, es la siguiente:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Si agregas tus propios valores personalizados para ignore en firebase.json, asegúrate de mantener (o agregar, si es que no está), la lista de archivos que se mostró anteriormente.

Administra alias de proyectos

Puedes asociar varios proyectos de Firebase con un mismo directorio de proyecto. Por ejemplo, recomendamos que uses un proyecto de Firebase para la etapa de pruebas y otro para la producción. Si usas diferentes entornos de proyectos, podrás verificar los cambios antes de implementarlos en la producción. El comando firebase use te permite cambiar de alias, además de crear otros nuevos.

Agrega un alias de proyecto

Cuando seleccionas un proyecto de Firebase durante la inicialización del proyecto, su alias se denomina default automáticamente. Sin embargo, para permitir que los comandos específicos de un proyecto se ejecuten en un proyecto de Firebase diferente, pero usen el mismo directorio del proyecto, ejecuta el siguiente comando desde el directorio del proyecto:

firebase use --add

Este comando requiere que selecciones otro proyecto de Firebase y le asignes un alias definido. Las definiciones de alias se escriben en un archivo .firebaserc dentro del directorio del proyecto.

Usa alias de proyectos

Si quieres usar alias de proyectos de Firebase definidos, ejecuta cualquiera de los siguientes comandos en el directorio del proyecto.

Comando Descripción
firebase use Muestra una lista de los alias definidos actualmente para el directorio del proyecto
firebase use \
PROJECT_ID|ALIAS
Hace que todos los comandos se ejecuten en el proyecto de Firebase especificado.
La CLI lo usará como el “proyecto activo”.
firebase use --clear Borra el proyecto activo.

Ejecuta firebase use PROJECT_ID|ALIAS para configurar un proyecto activo nuevo antes de ejecutar otros comandos de la CLI.

firebase use \
--unalias PROJECT_ALIAS
Quita un alias del directorio del proyecto.

Puedes usar la marca --project con cualquier comando de la CLI para anular el proyecto activo en ese momento. Por ejemplo, puedes hacer que la CLI se ejecute en un proyecto de Firebase al que le asignaste el alias staging. Si quieres ejecutar un solo comando en un proyecto de Firebase al que le asignaste el alias prod, podrás ejecutar, por ejemplo, firebase deploy --project=prod.

Control de código fuente y alias de proyectos

En general, debes registrar el archivo .firebaserc en el control de código fuente para que tu equipo pueda compartir alias de proyectos. Sin embargo, en el caso de los proyectos de código abierto o las plantillas de inicio, en general, no debes registrarlos en el archivo .firebaserc.

Si tienes un proyecto de desarrollo que solo tú usas, puedes pasar la marca --project con cada comando o ejecutar firebase use PROJECT_ID sin definir un alias para el proyecto de Firebase.

Publica y prueba tu proyecto de Firebase en forma local

Puedes ver y probar tu proyecto de Firebase en las URL alojadas localmente antes de implementarlo en producción. Si solo quieres probar algunas funciones, puedes usar una lista de elementos separados por comas en una marca del comando firebase serve.

Ejecuta el siguiente comando desde la raíz del directorio del proyecto local si quieres realizar alguna de estas tareas:

firebase serve --only hosting

Emula el proyecto con funciones de HTTP locales

Ejecuta cualquiera de los siguientes comandos desde el directorio del proyecto para emular el proyecto con funciones locales de HTTP.

  • A fin de emular funciones de HTTP y alojamiento para pruebas en URL locales, usa cualquiera de los siguientes comandos:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Para emular solo funciones de HTTP, usa el siguiente comando:

    firebase serve --only functions

Realiza pruebas desde otros dispositivos locales

De forma predeterminada, firebase serve solo responde a las solicitudes de localhost. Esto significa que podrás acceder al contenido alojado mediante el navegador web de tu computadora, pero no desde otros dispositivos de la red. Usa la marca --host para realizar pruebas en otros dispositivos locales, como se indica a continuación:

firebase serve --host 0.0.0.0  // accepts requests to any host

Implementa en un proyecto de Firebase

Firebase CLI administra la implementación del código y los recursos en tu proyecto de Firebase. Esto incluye lo siguiente:

  • Versiones nuevas de tus sitios de Firebase Hosting
  • Cloud Functions for Firebase nuevas, actualizadas o existentes
  • Esquemas y conectores nuevos o actualizados para Firebase Data Connect
  • Reglas para Firebase Realtime Database
  • Reglas para Cloud Storage for Firebase
  • Reglas para Cloud Firestore
  • Índices para Cloud Firestore

Para implementar un proyecto de Firebase, ejecuta el siguiente comando desde el directorio de tu proyecto:

firebase deploy

De manera opcional, puedes agregar un comentario a cada una de tus implementaciones. Este comentario se mostrará junto con otra información de la implementación en la página Firebase Hosting del proyecto. Por ejemplo:

firebase deploy -m "Deploying the best new feature ever."

Cuando uses el comando firebase deploy, ten en cuenta lo siguiente:

  • Para implementar recursos desde un directorio de proyecto, este debe tener un archivo firebase.json. El comando firebase init lo crea automáticamente.

  • De forma predeterminada, firebase deploy crea una versión para todos los recursos que se pueden implementar en el directorio del proyecto. Para implementar funciones o servicios específicos de Firebase, usa la implementación parcial.

Conflictos de implementación de reglas de seguridad

En el caso de Firebase Realtime Database, Cloud Storage for Firebase y Cloud Firestore, puedes definir reglas de seguridad ya sea en el directorio de tu proyecto local o en Firebase console.

Otra opción para evitar conflictos de implementación es usar la implementación parcial y solo definir reglas en Firebase console.

Cuotas de implementación

Es posible (aunque poco probable) que excedas una cuota que limite la tasa o el volumen de las operaciones de implementación de Firebase. Por ejemplo, si implementas muchas funciones, podrías recibir un mensaje de error HTTP 429 Quota. Para resolver estos problemas, usa la implementación parcial.

Revierte una implementación

Puedes revertir una implementación de Firebase Hosting en la página de Firebase Hosting de tu proyecto. Para ello, selecciona la acción Revertir en la versión correspondiente.

En este momento, no es posible revertir actualizaciones de reglas de seguridad de Firebase Realtime Database, Cloud Storage for Firebase ni Cloud Firestore.

Implementa servicios de Firebase específicos

Si solo quieres implementar servicios o funciones de Firebase específicos, puedes usar una lista de elementos separados por comas en una marca del comando firebase deploy. Por ejemplo, el siguiente comando implementa contenido de Firebase Hosting y reglas de seguridad de Cloud Storage.

firebase deploy --only hosting,storage

La siguiente tabla enumera los servicios y funciones disponibles para la implementación parcial. Los nombres de las marcas corresponden a las claves del archivo de configuración firebase.json.

Sintaxis de la marca Servicio o función que se implementa
--only hosting Contenido de Firebase Hosting
--only database Reglas de Firebase Realtime Database
--only dataconnect Esquemas y conectores de Firebase Data Connect
--only storage Reglas de Cloud Storage for Firebase
--only firestore Índices y reglas de Cloud Firestore para todas las bases de datos configuradas
--only functions Cloud Functions for Firebase (es posible que existan versiones más específicas de esta marca)

Implementa funciones específicas

Cuando implementas funciones, puedes indicar algunas de forma específica. Por ejemplo:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Otra opción es reunir las funciones en grupos de exportación en el archivo /functions/index.js. Agrupar funciones te permite implementar varias de ellas con un solo comando.

Por ejemplo, puedes escribir las siguientes funciones para definir un groupA y un groupB:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

En este ejemplo, se incluye un archivo functions/groupB.js aparte que define específicamente groupB. Por ejemplo:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

En este ejemplo, puedes implementar todas las funciones de groupA si ejecutas el siguiente comando desde el directorio de tu proyecto:

firebase deploy --only functions:groupA

O puedes indicar una función específica dentro de un grupo con solo ejecutar el siguiente comando:

firebase deploy --only functions:groupA.function1,groupB.function4

Borra funciones

Firebase CLI admite los siguientes comandos y opciones para borrar funciones implementadas previamente:

  • Borrar todas las funciones que coincidan con el nombre especificado en todas las regiones:

    firebase functions:delete FUNCTION-1_NAME

  • Borrar una función especificada que se ejecuta en una región no predeterminada:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Borrar más de una función:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Borrar un grupo de funciones especificadas:

    firebase functions:delete GROUP_NAME

  • Omitir el mensaje de confirmación:

    firebase functions:delete FUNCTION-1_NAME --force

Configura tareas de secuencia de comandos previas y posteriores a la implementación

Puedes conectar secuencias de comandos de shell al comando firebase deploy para realizar tareas previas a la implementación o posteriores a ella. Por ejemplo, una secuencia de comandos previa a la implementación podría transpilar el código de TypeScript a JavaScript y un hook posterior a la implementación podría notificar a los administradores cuándo se implementa contenido nuevo del sitio en Firebase Hosting.

Para configurar hooks previos a la implementación o posteriores a ella, agrega las secuencias de comandos de Bash al archivo de configuración firebase.json. Puedes definir secuencias de comandos breves directamente en el archivo firebase.json o puedes consultar otros archivos que se encuentren en el directorio de tu proyecto.

Por ejemplo, la siguiente secuencia de comandos es la expresión de firebase.json para una tarea posterior a la implementación que envía un mensaje de Slack cuando se completa correctamente una implementación en Firebase Hosting.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

El archivo de la secuencia de comandos messageSlack.sh reside en el directorio del proyecto y es similar al siguiente:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Puedes configurar los hooks predeploy y postdeploy para cualquiera de los recursos que puedes implementar. Ten en cuenta que ejecutar firebase deploy activa todas las tareas previas y posteriores a la implementación que se definieron en el archivo firebase.json. Para ejecutar solo aquellas tareas asociadas con un servicio de Firebase específico, usa comandos de implementación parcial.

Los hooks predeploy y postdeploy muestran los flujos estándar de salida y de errores de las secuencias de comandos en la terminal. En caso de error, ten en cuenta lo siguiente:

  • Si un hook previo a la implementación no se completa según lo previsto, la implementación se cancela.
  • Si la implementación falla por cualquier motivo, los hooks previos a la implementación no se activan.

Variables de entorno

Las siguientes variables de entorno están disponibles dentro de las secuencias de comandos que se ejecutan en los hooks previos a la implementación y posteriores a ella:

  • $GCLOUD_PROJECT: El ID del proyecto activo
  • $PROJECT_DIR: El directorio raíz que contiene el archivo firebase.json
  • $RESOURCE_DIR: (Solo para las secuencias de comandos hosting y functions) La ubicación del directorio que contiene los recursos de Hosting o Cloud Functions que se implementarán

Administra varias instancias de Realtime Database

Un proyecto de Firebase puede tener varias instancias de Firebase Realtime Database. De forma predeterminada, los comandos de la CLI interactúan con la instancia predeterminada de tu base de datos.

Sin embargo, puedes interactuar con una instancia no predeterminada de la base de datos mediante la marca --instance DATABASE_NAME. Los siguientes comandos admiten la marca --instance:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Referencia de comandos

Comandos administrativos de la CLI

Comando Descripción
help Muestra información de ayuda sobre la CLI o los comandos específicos.
init Asocia y configura un proyecto de Firebase nuevo en el directorio actual. Este comando creará un archivo de configuración firebase.json en el directorio actual.
login Autentica la CLI con tu cuenta de Firebase. Se necesita acceso a un navegador web.
Para ingresar a la CLI en entornos remotos que no permiten el acceso a localhost, usa la marca --no-localhost.
login:ci Genera un token de autenticación para usarlo en entornos no interactivos.
logout Sale de la cuenta en Firebase CLI.
open Abre un navegador con los recursos de proyecto pertinentes.
projects:list Muestra una lista de todos los proyectos de Firebase a los que tienes acceso.
use Establece el proyecto actual de Firebase para la CLI.
Administra alias de proyectos.

Comandos de administración de proyectos

Comando Descripción
Administración de proyectos de Firebase
projects.addFirebase Agrega recursos de Firebase a un proyecto de Google Cloud existente.
projects:create Crea un proyecto de Google Cloud nuevo y, luego, le agrega recursos de Firebase.
projects:list Muestra una lista de todos los proyectos de Firebase a los que tienes acceso.
Administración de aplicaciones de Firebase (iOS, Android y Web)
apps:create Crea una nueva app de Firebase en el proyecto activo.
apps:list Muestra una lista de las apps de Firebase registradas en el proyecto activo.
apps:sdkconfig Imprime la configuración de servicios de Google de una app de Firebase.
setup:web Obsoleto. En su lugar, usa apps:sdkconfig y especifica web como el argumento de la plataforma.
Imprime la configuración de servicios de Google de una aplicación web de Firebase.
Administración de hash de certificados SHA (solo para Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Agrega el hash del certificado SHA que se especificó a la app de Firebase para Android indicada.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Borra el hash del certificado SHA que se especificó de la app de Firebase para Android indicada.
apps:android:sha:list \
FIREBASE_APP_ID
Muestra una lista de los hash del certificado SHA de la app de Firebase para Android indicada.

Implementación y desarrollo local

Estos comandos te permiten implementar y, además, interactuar con tu sitio de Firebase Hosting.

Comando Descripción
deploy Implementa el código y los elementos del directorio del proyecto en el proyecto activo. En el caso de Firebase Hosting, se requiere un archivo de configuración firebase.json.
serve Inicia un servidor web local con tu configuración de Firebase Hosting. En el caso de Firebase Hosting, se requiere un archivo de configuración firebase.json.

Comandos App Distribution

Comando Descripción
appdistribution:distribute \
--app FIREBASE_APP_ID
Permite que la compilación esté disponible para los verificadores.
appdistribution:testers:add Permite agregar verificadores al proyecto.
appdistribution:testers:remove Permite quitar verificadores del proyecto.

Comandos App Hosting

Comando Descripción
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
Crea la colección de recursos administrados vinculados a una sola base de código que consta de un backend de App Hosting. De manera opcional, especifica una app web de Firebase existente por su ID de app de Firebase.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Recupera detalles específicos, incluida la URL pública, de un backend.
apphosting:backends:list \
--project PROJECT_ID
Recupera una lista de todos los backends activos asociados con un proyecto.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Borra un backend del proyecto.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Exporta secretos para usarlos en la emulación de apps.
Usa de forma predeterminada los secretos almacenados en apphosting.yaml o toma --secrets para especificar cualquier entorno que tenga un archivo apphosting.ENVIRONMENT_NAME.yaml correspondiente.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Crea un lanzamiento activado de forma manual.
De manera opcional, especifica la confirmación más reciente de una rama o una confirmación específica. Si no se proporcionan opciones, se solicita la selección de una lista de ramas.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
Almacena material secreto en Secret Manager.
De forma opcional, proporciona una ruta de acceso al archivo desde la que se leerán los datos secretos. Configúrala como _ para leer datos secretos de la entrada estándar.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
Otorga a la cuenta de servicio del backend acceso al secreto proporcionado para que App Hosting pueda acceder a él en el tiempo de compilación o ejecución.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Obtiene los metadatos de un secreto y sus versiones.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
Accede a un valor secreto según el secreto y su versión. El valor predeterminado consiste en acceder a la versión más reciente.

Comandos de Authentication (administración de usuarios)

Comando Descripción
auth:export Exporta las cuentas de usuario del proyecto activo a un archivo JSON o CSV. Consulta la página auth:import y auth:export para obtener más detalles.
auth:import Importa las cuentas de usuario al proyecto activo desde un archivo JSON o CSV. Consulta la página auth:import y auth:export para obtener más detalles.

Comandos Cloud Firestore

Comando Descripción
firestore:locations

Enumera las ubicaciones disponibles para tu base de datos de Cloud Firestore.

firestore:databases:create DATABASE_ID

Crea una instancia de base de datos en modo nativo en tu proyecto de Firebase.

El comando usa las siguientes marcas:

  • --location <region name>: para especificar la ubicación de implementación de la base de datos. Ten en cuenta que puedes ejecutar firebase firestore:locations para enumerar las ubicaciones disponibles. Obligatorio.
  • --delete-protection <deleteProtectionState> para permitir o evitar la eliminación de la base de datos especificada. Los valores válidos son ENABLED o DISABLED. La configuración predeterminada es DISABLED.
  • --point-in-time-recovery <PITRState> para establecer si la recuperación de un momento determinado está habilitada. Los valores válidos son ENABLED o DISABLED. La configuración predeterminada es DISABLED. Opcional.
firestore:databases:list

Enumera las bases de datos de tu proyecto de Firebase.

firestore:databases:get DATABASE_ID

Obtén la configuración de una base de datos específica en tu proyecto de Firebase.

firestore:databases:update DATABASE_ID

Actualiza la configuración de una base de datos específica en tu proyecto de Firebase.

Se requiere al menos una marca. El comando usa las siguientes marcas:

  • --delete-protection <deleteProtectionState> para permitir o evitar la eliminación de la base de datos especificada. Los valores válidos son ENABLED o DISABLED. La configuración predeterminada es DISABLED.
  • --point-in-time-recovery <PITRState> para establecer si la recuperación de un momento determinado está habilitada. Los valores válidos son ENABLED o DISABLED. La configuración predeterminada es DISABLED. Opcional.
firestore:databases:delete DATABASE_ID

Borra una base de datos en tu proyecto de Firebase.

firestore:indexes

Enumera los índices de una base de datos en tu proyecto de Firebase.

El comando toma la siguiente marca:

  • --database DATABASE_ID para especificar el nombre de la base de datos para la que se enumeran los índices. Si no se proporciona, los índices se enumeran para la base de datos predeterminada.
firestore:delete

Borra los documentos de la base de datos del proyecto activo. Mediante la CLI puedes borrar de manera recurrente todos los documentos de una colección.

Ten en cuenta que borrar los datos de Cloud Firestore con la CLI genera costos de lectura y eliminación. Para obtener más información, consulta Información sobre la facturación de Cloud Firestore.

El comando toma la siguiente marca:

  • --database DATABASE_ID para especificar el nombre de la base de datos de la que se borran los documentos. Si no se especifica, los documentos se borran de la base de datos predeterminada. Opcional.

Comandos Cloud Functions for Firebase

Comando Descripción
functions:config:clone Clona el entorno de otro proyecto en el proyecto activo de Firebase.
functions:config:get Recupera los valores de configuración existentes de Cloud Functions del proyecto activo.
functions:config:set Almacena los valores de configuración del entorno de ejecución de Cloud Functions del proyecto activo.
functions:config:unset Quita los valores de la configuración del entorno de ejecución del proyecto activo.
functions:log Lee registros de Cloud Functions implementados.

Consulta la documentación de la configuración del entorno para obtener más detalles.

Comandos Crashlytics

Comando Descripción
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Genera un ID de archivo de asignación único en el archivo de recursos de Android (XML) especificado.
crashlytics:mappingfile:upload \
--app=FIREBASE_APP_ID \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Sube un archivo de asignación compatible con Proguard (TXT) para esta app y lo asocia con el ID de archivo de asignación declarado en el archivo de recursos de Android (XML) especificado.
crashlytics:symbols:upload \
--app=FIREBASE_APP_ID \
PATH/TO/SYMBOLS
Genera un archivo de símbolos compatible con Crashlytics para fallas de bibliotecas nativas en Android y lo sube a los servidores de Firebase.

Comandos Data Connect

Estos comandos y sus casos de uso se describen con más detalle en la guía de referencia de la CLI de Data Connect.

Comando Descripción
dataconnect:services:list Muestra una lista de todos los servicios de Data Connect implementados en tu proyecto de Firebase.
dataconnect:sql:diff \
SERVICE_ID
Para el servicio especificado, muestra las diferencias entre un esquema Data Connect local y el esquema de tu base de datos de Cloud SQL.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Migra el esquema de tu base de datos de Cloud SQL para que coincida con tu esquema Data Connect local.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Otorga el rol de SQL al correo electrónico del usuario o la cuenta de servicio especificado.
Para la marca --role, el rol de SQL que se otorgará es uno de los siguientes: owner, writer o reader.
Para la marca --email, proporciona la dirección de correo electrónico del usuario o la cuenta de servicio a la que se le otorgará el rol.
dataconnect:sdk:generate Genera SDKs tipificados para tus conectores Data Connect.

Comandos Extensions

Comando Descripción
ext Muestra información sobre cómo usar los comandos de Firebase Extensions.
Enumera las instancias de extensiones instaladas en el proyecto activo.
ext:configure \
EXTENSION_INSTANCE_ID
Vuelve a configurar los valores de los parámetros de una instancia de extensión en el manifiesto de extensión.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Imprime información detallada sobre una extensión.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Agrega una instancia nueva de una extensión al manifiesto de extensión.
ext:list Muestra una lista de todas las instancias de extensiones instaladas en un proyecto de Firebase.
Imprime el ID de instancia de cada extensión.
ext:uninstall \
EXTENSION_INSTANCE_ID
Elimina una instancia de extensión del manifiesto de extensión.
ext:update \
EXTENSION_INSTANCE_ID
Actualiza una instancia de extensión a la versión más reciente en el manifiesto de extensión.
ext:export Exporta todas las instancias de extensiones instaladas del proyecto al manifiesto de extensión.

Comandos del publicador de Extensions

Comando Descripción
ext:dev:init Inicializa una base de código para una extensión nueva en el directorio actual.
ext:dev:list \
PUBLISHER_ID
Imprime una lista de todas las extensiones que subió un publicador.
ext:dev:register Registra un proyecto de Firebase como un proyecto de publicador de extensiones.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Da de baja las versiones de extensiones que coincidan con el predicado de la versión.
Un predicado de versión puede ser una versión única (como 1.0.0), o un rango de versiones (como >1.0.0).
Si no se proporciona un predicado de versión, se dan de baja todas las versiones de esa extensión.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Vuelve a admitir las versiones de extensión que coinciden con el predicado de la versión.
Un predicado de versión puede ser una versión única (como 1.0.0), o un rango de versiones (como >1.0.0).
Si no se proporciona un predicado de versión, se vuelven a admitir todas las versiones de esa extensión.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Sube una versión nueva de una extensión.
ext:dev:usage \
PUBLISHER_ID
Muestra la cantidad de instalaciones y las métricas de uso de las extensiones que subió un editor.

Comandos Hosting

Comando Descripción
hosting:disable

Deja de procesar tráfico de Firebase Hosting para el proyecto activo de Firebase.

Después de ejecutar este comando, se mostrará el mensaje “Sitio no encontrado” en la URL de Hosting del proyecto.

Administración de sitios de Hosting
firebase hosting:sites:create \
SITE_ID

Crea un sitio de Hosting nuevo en el proyecto activo de Firebase con el SITE_ID especificado.

(Opcional) Especifica una app web de Firebase existente a fin de asociarla con el sitio nuevo. Para ello, pasa la siguiente marca: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Borra el sitio de Hosting especificado.

La CLI muestra un mensaje de confirmación antes de borrar el sitio.

(Opcional) Pasa las siguientes marcas -f o --force para omitir el mensaje de confirmación.

firebase hosting:sites:get \
SITE_ID

Recupera información sobre el sitio de Hosting especificado.

firebase hosting:sites:list

Muestra una lista de todos los sitios de Hosting del proyecto de Firebase activo.

Administración de canales de vista previa
firebase hosting:channel:create \
CHANNEL_ID

Crea un nuevo canal de vista previa en el sitio Hosting predeterminado con el CHANNEL_ID especificado.

Este comando no se implementa en el canal.

firebase hosting:channel:delete \
CHANNEL_ID

Borra el canal de vista previa especificado.

No puedes borrar canales publicados de un sitio.

firebase hosting:channel:deploy \
CHANNEL_ID

Implementa tu contenido y configuración de Hosting en el canal de vista previa especificado.

Si el canal de vista previa aún no existe, este comando lo crea en el sitio de Hosting predeterminado antes de implementarlo en el canal.

firebase hosting:channel:list Muestra todos los canales (incluido el canal "publicado") en el sitio de Hosting predeterminado.
firebase hosting:channel:open \
CHANNEL_ID
Abre la URL del canal especificado en un navegador o, si no es posible hacerlo, muestra la URL.
Clonación de versiones
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona la versión implementada más recientemente en el canal de “origen” especificado en el canal de “destino” especificado.

Este comando también se implementa en el canal de “destino”. Si el canal de “destino” aún no existe, este comando crea un canal de vista previa nuevo en el sitio de Hosting de “destino”, antes de implementar en el canal.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona la versión especificada en el canal de “destino” especificado.

Este comando también se implementa en el canal de “destino”. Si el canal de “destino” aún no existe, este comando crea un canal de vista previa nuevo en el sitio de Hosting de “destino”, antes de implementar en el canal.

Puedes encontrar el VERSION_ID en el panel Hosting de Firebase console.

Comandos Realtime Database

Ten en cuenta que puedes crear tu instancia inicial y predeterminada de Realtime Database en Firebase console o con el flujo de trabajo general firebase init o el flujo firebase init database específico.

Una vez que se creen las instancias, puedes administrarlas como se describe en Administra varias instancias de Realtime Database.

Comando Descripción
database:get Recupera datos desde la base de datos del proyecto actual y los muestra en formato JSON. Admite consultas en datos indexados.
database:instances:create Crea una instancia de base de datos con un nombre de instancia específico. Acepta la opción --location para crear una base de datos en una región específica. Si quieres ver los nombres de las regiones para usarlos con esta opción, consulta Selecciona las ubicaciones de tu proyecto. Si no existe una instancia de base de datos para el proyecto actual, se te pedirá que ejecutes el flujo firebase init a fin de crear una instancia.
database:instances:list Enumera todas las instancias de base de datos de este proyecto. Acepta la opción --location para enumerar las bases de datos ubicadas en una región específica. Si quieres ver los nombres de las regiones para usarlos con esta opción, consulta Selecciona las ubicaciones de tu proyecto.
database:profile Crea un perfil de operaciones en la base de datos del proyecto actual. Para obtener más detalles, consulta los tipos de operaciones de Realtime Database.
database:push Envía datos nuevos a una lista en la ubicación especificada de la base de datos del proyecto actual. Obtiene parámetros de entrada de un archivo, STDIN o el argumento de la línea de comandos.
database:remove Borra todos los datos de una ubicación especificada de la base de datos del proyecto activo.
database:set Reemplaza todos los datos de una ubicación específica en la base de datos del proyecto actual. Obtiene parámetros de entrada de un archivo, STDIN o de un argumento de la línea de comandos.
database:update Ejecuta una actualización parcial en una ubicación especificada en la base de datos del proyecto actual. Obtiene parámetros de entrada de un archivo, STDIN o el argumento de la línea de comandos.

Comandos Remote Config

Comando Descripción
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Enumera las diez versiones más recientes de la plantilla. Especifica 0 para mostrar todas las versiones existentes o, de manera alternativa, pasa la opción --limit a fin de limitar la cantidad de versiones que se muestran.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Obtiene la plantilla por versión (la configuración predeterminada es la versión más reciente) y muestra los resultados de los grupos de parámetros, los parámetros, y los nombres y la versión de las condiciones en una tabla. De manera opcional, puedes escribir el resultado en un archivo especificado con -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Revierte la plantilla de Remote Config a un número de versión anterior especificado o, de manera predeterminada, a la versión anterior (1 número de versión menos que la actual). A menos que se pase --force, solicita indicar Sí o no antes de proceder con la reversión.