Obtén más información para usar y administrar las claves de API para Firebase

Una clave de API es una string única que se usa para enrutar solicitudes a tu proyecto de Firebase cuando interactúas con los servicios de Google y Firebase. En esta página, se describe la información básica sobre las claves de API y las prácticas recomendadas para usar y administrar claves de API con apps de Firebase.

Información general sobre las claves de API y Firebase

Las claves de API para Firebase son diferentes de las típicas claves de API

A diferencia de lo que sucede con las claves de API, las claves de API para los servicios de Firebase no se usan con el fin de controlar el acceso a los recursos de backend. Esto solo se puede realizar con las reglas de seguridad de Firebase (para controlar qué usuarios pueden acceder a los recursos) y la Verificación de aplicaciones (para controlar qué apps pueden acceder a los recursos).

Por lo general, debes proteger de manera meticulosa las claves de API (por ejemplo, mediante un servicio de Vault o configurando las claves como variables de entorno). Sin embargo, sí se pueden incluir las claves de API para los servicios de Firebase en el código o en los archivos de configuración registrados.

Si bien es seguro incluir las claves de API de los servicios de Firebase en el código, existen algunos casos específicos en los que debes aplicar límites a las claves de API; por ejemplo, si usas el AA de Firebase, Firebase Authentication con el método de acceso con correo electrónico y contraseña, o una API de Google Cloud facturable. Obtén más información sobre estos casos más adelante en esta página.

Creación de claves de API

Un proyecto de Firebase puede tener muchas claves de API, pero cada una de ellas solo se puede asociar con un único proyecto de Firebase.

Claves de API creadas de forma automática por Firebase para tus apps de Firebase

Firebase crea claves de API de forma automática para tu proyecto cuando realizas cualquiera de las siguientes acciones:

  • Crear un proyecto de Firebase > Browser key se crea automáticamente
  • Crear una app de Firebase para Apple > iOS key se crea automáticamente
  • Crear una app de Firebase para Android > Android key se crea automáticamente

También puedes crear tus propias claves de API en la consola de Google Cloud, por ejemplo, para el desarrollo o la depuración. Obtén más información acerca de cuándo se recomienda esto más adelante en esta página.

Encuentra tus claves de API

Puedes ver y administrar todas las claves de API de tu proyecto en el panel API y servicios > Credenciales de Google Cloud Console.

También puedes verificar qué clave de API coincide de manera automática con una app de Firebase en los siguientes lugares. De forma predeterminada, todas las apps de Firebase del proyecto de la misma plataforma (Apple o Android, o la Web) usarán la misma clave de API.

  • Apps de Firebase para Apple: Encuentra la clave de API de coincidencia automática con una app en el archivo de configuración de Firebase, GoogleService-Info.plist, en el campo API_KEY.

  • Apps de Firebase para Android: Encuentra la clave de API de coincidencia automática con una app en el archivo de configuración de Firebase, google-services.json, en el campo current_key.

  • Apps web para Firebase: Encuentra la clave de API de coincidencia automática con una app en el objeto de configuración de Firebase, en el campo apiKey.

Uso de claves de API

Las claves de API se usan para identificar tu proyecto de Firebase cuando interactúas con los servicios de Firebase o Google. En particular, se usan para asociar las solicitudes a la API con el proyecto a fin de calcular la cuota y la facturación. También son útiles para acceder a datos públicos.

Por ejemplo, puedes usar de manera explícita una clave de API pasando su valor a una llamada a la API de REST como un parámetro de consulta. En este ejemplo, se muestra cómo realizar una solicitud a la API de abreviación de vínculos de Dynamic Links:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Cuando la app realiza una llamada a una API de Firebase, buscará de manera automática el objeto o archivo de configuración de Firebase para la clave de API del proyecto. Sin embargo, puedes configurar tus claves de API con un mecanismo diferente, lo que incluye variables de entorno.

Aplica restricciones a las claves de API (acción recomendada)

Si bien no es necesario tratar una clave de API para los servicios de Firebase como un Secret, hay algunos casos específicos (revísalos a continuación) en los que te recomendamos tomar medidas adicionales a fin de proteger tu proyecto del uso inadecuado de la clave de API.

Reduce la cuota si usas la autenticación con contraseña

Si usas Firebase Authentication con contraseñas y otra persona descubre tu clave de API, no podrá acceder a ninguna de las bases de datos de tu proyecto de Firebase ni a los datos de Cloud Storage siempre y cuando las reglas de seguridad de Firebase protejan esos datos. Sin embargo, la persona podría usar la clave de API para acceder a los extremos de autenticación de Firebase y realizar solicitudes de autenticación en el proyecto.

A fin de reducir las posibilidades de que alguien use inadecuadamente una clave de API para intentar un ataque de fuerza bruta, puedes reducir la cuota predeterminada de los extremos identitytoolkit.googleapis.com con el fin de reflejar las expectativas normales de tráfico de la app. Ten en cuenta que, si reduces la cuota y la app recibe usuarios de forma repentina, es posible que veas errores de acceso hasta que aumentes la cuota. Puedes cambiar las cuotas de API del proyecto en Google Cloud Console.

Usa claves de API independientes y restringidas para tipos específicos de API

Si bien las claves de API que se usan en los servicios de Firebase por lo general no necesitan tratarse como Secrets, debes tomar algunas precauciones adicionales con las claves de API que se usan con el fin de otorgar acceso a las API de Google Cloud que habilitaste de forma manual.

Si usas una API de Google Cloud (en cualquier plataforma) que Firebase no habilita de manera automática (es decir, tú la habilitaste), es recomendable que crees claves de API independientes y restringidas para usarlas con esas API. Esto es muy importante si la API es para un servicio facturable de Google Cloud.

Por ejemplo, si usas las API de Cloud Vision del AA de Firebase en iOS, debes crear claves de API independientes solo para acceder a las API de Cloud Vision.

Cuando usas claves de API independientes y restringidas para las API que no son de Firebase, puedes rotar o reemplazar las claves cuando sea necesario y agregar restricciones adicionales a las claves de API sin interrumpir el uso de los servicios de Firebase.

Usa claves de API específicas del entorno (acción recomendada)

Si configuras diferentes proyectos de Firebase para entornos distintos, como la etapa de pruebas y la producción, es importante que cada instancia de la app interactúe con su proyecto de Firebase correspondiente. Por ejemplo, la instancia de etapa de pruebas de la app nunca debe comunicarse con el proyecto de producción de Firebase. Esto también significa que la app de etapa de pruebas necesita usar las claves de API asociadas al proyecto de Firebase de etapa de pruebas.

A fin de reducir los problemas que generen cambios de código desde el desarrollo hasta la etapa de pruebas y la producción, en lugar de incluir las claves de API en el código, configúralas como variables de entorno o inclúyelas en un archivo de configuración.

Ten en cuenta que, si usas Firebase Local Emulator Suite para el desarrollo junto con el AA de Firebase, debes crear y usar una clave de API de solo depuración. Las instrucciones para crear ese tipo de clave se encuentran en los documentos sobre AA de Firebase.

Preguntas frecuentes