Obtenga más información sobre el uso y la administración de claves API para Firebase

Una clave API es una cadena única que se utiliza para enrutar solicitudes a su proyecto de Firebase cuando interactúa con los servicios de Firebase y Google. Esta página describe información básica sobre las claves API, así como las mejores prácticas para usar y administrar claves API con aplicaciones de Firebase.

Información general sobre claves API y Firebase

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

A diferencia de cómo se usan normalmente las claves API, las claves API para los servicios de Firebase no se usan para controlar el acceso a los recursos backend ; eso solo se puede hacer con las Reglas de seguridad de Firebase (para controlar qué usuarios pueden acceder a los recursos) y App Check (para controlar qué aplicaciones pueden acceder a los recursos).

Por lo general, es necesario proteger minuciosamente las claves API (por ejemplo, utilizando un servicio de bóveda o configurando las claves como variables de entorno); sin embargo, las claves API para los servicios de Firebase se pueden incluir en el código o en los archivos de configuración registrados.

Aunque es seguro incluir claves API para los servicios de Firebase en el código, existen algunos casos específicos en los que debes imponer límites para tu clave API; por ejemplo, si usa Firebase ML, Firebase Authentication con el método de inicio de sesión por correo electrónico/contraseña o una API de Google Cloud facturable. Obtenga más información sobre estos casos más adelante en esta página.

Creando claves API

Un proyecto de Firebase puede tener muchas claves API, pero cada clave API solo puede asociarse con un único proyecto de Firebase.

Claves API creadas automáticamente por Firebase para sus aplicaciones de Firebase

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

  • Crear un proyecto de Firebase > Browser key creada automáticamente
  • Crear una aplicación Firebase Apple > iOS key creada automáticamente
  • Crear una aplicación Firebase para Android > Android key creada automáticamente

También puedes crear tus propias claves API en la consola de Google Cloud , por ejemplo para desarrollo o depuración . Obtenga más información sobre cuándo podría recomendarse esto más adelante en esta página.

Encontrar sus claves API

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

También puede encontrar qué clave API coincide automáticamente con una aplicación Firebase en los siguientes lugares. De forma predeterminada, todas las aplicaciones Firebase de tu proyecto para la misma plataforma (Apple, Android o Web) utilizarán la misma clave API.

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

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

  • Firebase Web Apps : busque la clave API de coincidencia automática de una aplicación en el objeto de configuración de Firebase, en el campo apiKey .

Usando una clave API

Las claves API se utilizan para identificar su proyecto de Firebase cuando interactúa con los servicios de Firebase/Google. Específicamente, se utilizan para asociar solicitudes de API con su proyecto para cuotas y facturación. También son útiles para acceder a datos públicos.

Por ejemplo, puede utilizar explícitamente una clave API pasando su valor a una llamada API REST como parámetro de consulta. Este ejemplo muestra cómo puede realizar una solicitud a la API del acortador de enlaces de Dynamic Links :

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

Cuando su aplicación realiza una llamada a una API de Firebase, su aplicación buscará automáticamente en el archivo/objeto de configuración de Firebase la clave API de su proyecto. Sin embargo, puede configurar sus claves API utilizando un mecanismo diferente, incluidas las variables de entorno.

Aplicar restricciones a las claves API (recomendado)

Aunque no es necesario tratar una clave API para los servicios de Firebase como un secreto, hay algunos casos específicos (ver a continuación) en los que es posible que desees tomar medidas adicionales para proteger tu proyecto del uso indebido de la clave API.

Reduzca la cuota si utiliza autenticación basada en contraseña

Si utiliza la autenticación de Firebase basada en contraseña y alguien obtiene su clave API, no podrá acceder a ninguna base de datos de su proyecto de Firebase ni a los datos de Cloud Storage siempre que estos datos estén protegidos por las reglas de seguridad de Firebase . Sin embargo, podrían usar su clave API para acceder a los puntos finales de autenticación de Firebase y realizar solicitudes de autenticación para su proyecto.

Para mitigar la posibilidad de que alguien pueda hacer un mal uso de una clave API para intentar un ataque de fuerza bruta, puede ajustar la cuota predeterminada de los puntos finales de identitytoolkit.googleapis.com para reflejar las expectativas de tráfico normal de su aplicación. Tenga en cuenta que si ajusta esta cuota y su aplicación gana usuarios repentinamente, es posible que obtenga errores de inicio de sesión hasta que aumente la cuota. Puedes cambiar las cuotas de API de tu proyecto en la consola de Google Cloud .

Utilice claves API restringidas e independientes para tipos específicos de API

Aunque generalmente no es necesario tratar las claves API utilizadas para los servicios de Firebase como secretas, debes tomar algunas precauciones adicionales con las claves API utilizadas para otorgar acceso a las API de Google Cloud que has habilitado manualmente.

Si utiliza una API de Google Cloud (en cualquier plataforma) que Firebase no habilita automáticamente (lo que significa que la habilitó usted mismo), debería considerar crear claves de API restringidas e independientes para usar con esas API. Esto es particularmente importante si la API es para un servicio facturable de Google Cloud.

Por ejemplo, si usa las API de Cloud Vision de Firebase ML en iOS, debe crear claves de API separadas que use solo para acceder a las API de Cloud Vision.

Al usar claves de API restringidas e independientes para 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.

Utilice claves API específicas del entorno (recomendado)

Si configuras diferentes proyectos de Firebase para diferentes entornos, como ensayo y producción, es importante que cada instancia de aplicación interactúe con su proyecto de Firebase correspondiente. Por ejemplo, la instancia de su aplicación de prueba nunca debe comunicarse con su proyecto de producción de Firebase. Esto también significa que su aplicación de prueba debe usar claves API asociadas con su proyecto de prueba de Firebase.

Para reducir los problemas que promueven cambios de código desde el desarrollo hasta la puesta en escena y la producción, en lugar de incluir claves API en el código mismo, configúrelas como variables de entorno o inclúyalas en un archivo de configuración.

Tenga en cuenta que si utiliza Firebase Local Emulator Suite para el desarrollo junto con Firebase ML, debe crear y utilizar una clave API de solo depuración. Las instrucciones para crear ese tipo de clave se encuentran en los documentos de Firebase ML .

Preguntas frecuentes