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 para controlar el acceso a los recursos de backend. Esto solo se puede hacer con Firebase Security Rules (para controlar qué usuarios finales pueden acceder a los recursos) y Firebase App Check (para controlar qué apps pueden acceder a los recursos).

Por lo general, debes proteger de manera meticulosa las claves de API (por ejemplo, con un servicio de Vault o la configuración de 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, debes revisarlas y aplicarles las restricciones y los límites adecuados.

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 APIs y servicios > Credenciales en la consola de Google Cloud.

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 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 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 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 realice una llamada a una API de Firebase que requiera una clave de API proporcionada por el cliente web o para dispositivos móviles, la app buscará automáticamente en el objeto o archivo de configuración de Firebase la clave de API de tu proyecto. Sin embargo, puedes proporcionar claves de API para tu app con un mecanismo diferente, lo que incluye variables de entorno.

Revisa y aplica las restricciones adecuadas 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, debes revisar y aplicar las restricciones y los límites que se describen en esta sección.

Revisa las APIs que se agregaron automáticamente a la lista de entidades permitidas para tus claves de API de Firebase

Cuando Firebase crea una clave de API en tu proyecto, agrega automáticamente "restricciones de API" a esa clave. Las APIs que se agregan a esta lista de entidades permitidas son APIs relacionadas con Firebase que exigen que el cliente proporcione una clave de API junto con la llamada. Ten en cuenta que la mayoría de las APIs necesarias para usar los servicios de Firebase no necesitan estar en la lista de entidades permitidas de tus claves de API.

Dado que Firebase agrega las APIs necesarias para todos los servicios de Firebase, la lista de entidades permitidas de una clave de API puede incluir APIs de productos que no usas. Puedes quitar APIs de la lista de entidades permitidas, pero debes tener mucho cuidado de no quitar las APIs necesarias para Firebase y los servicios de Firebase que usas (consulta la lista de las APIs relacionadas con Firebase que deben estar en la lista de entidades permitidas para cada servicio o producto). De lo contrario, recibirás errores cuando realices llamadas a los servicios de Firebase.

Reduce la cuota si usas la Authentication 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 ni a los datos de Cloud Storage de tu proyecto de Firebase, siempre y cuando las Firebase Security Rules 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 la consola de Google Cloud.

Usa claves de API independientes y restringidas para cualquier servicio que no sea de Firebase

Si bien las claves de API que se usan en los servicios de Firebase por lo general no necesitan tratarse como objetos Secret, debes tomar algunas precauciones adicionales con las claves de API que usas con otras APIs de Google Cloud.

Si usas una API de Google Cloud (en cualquier plataforma) que no sea para un servicio o producto de Firebase, te recomendamos que crees claves de API independientes y restringidas para usarlas con esas APIs. Esto es muy importante si la API es para un servicio facturable de Google Cloud.

Por ejemplo, si usas Firebase ML y las APIs de Cloud Vision en iOS, debes crear claves de API independientes que uses solo para acceder a las APIs 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 Firebase ML, 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 de Firebase ML.

Preguntas frecuentes y solución de problemas

Preguntas frecuentes

Soluciona problemas