Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Saiba mais sobre como usar e gerenciar chaves de API para Firebase

Uma chave de API é uma string exclusiva usada para encaminhar solicitações para seu projeto do Firebase ao interagir com o Firebase e os serviços do Google. Esta página descreve informações básicas sobre chaves de API, bem como práticas recomendadas para usar e gerenciar chaves de API com aplicativos Firebase.

Informações gerais sobre chaves de API e Firebase

As chaves de API do Firebase são diferentes das chaves de API típicas

Ao contrário de como as chaves de API são normalmente utilizados, chaves de API para serviços Firebase não são usados para controlar o acesso a recursos de back-end; isso só pode ser feito com as regras de segurança do Firebase (para controlar quais usuários podem acessar recursos) e App Check (para controlar quais aplicativos podem acessar recursos).

Normalmente, você precisa proteger cuidadosamente as chaves de API (por exemplo, usando um serviço de cofre ou definindo as chaves como variáveis ​​de ambiente); no entanto, as chaves de API para serviços do Firebase podem ser incluídas no código ou em arquivos de configuração com check-in.

Embora chaves de API para serviços Firebase são seguros para incluir no código, existem alguns casos específicos quando você deve impor limites para a sua chave de API; por exemplo, se você estiver usando Firebase ML, Firebase Authentication com o método de login por e-mail / senha ou uma Google Cloud API faturável. Saiba mais sobre esses casos posteriormente nesta página.

Criação de chaves de API

Um projeto do Firebase pode ter muitas chaves de API, mas cada chave de API só pode ser associada a um único projeto do Firebase.

Chaves de API criadas automaticamente pelo Firebase para seus aplicativos do Firebase

O Firebase cria chaves de API automaticamente para seu projeto quando você faz o seguinte:

  • Criar um projeto Firebase> Browser key auto-criado
  • Criar um Firebase iOS App> iOS key auto-criado
  • Criar um Firebase Android App> Android key auto-criado

Você também pode criar suas próprias chaves de API do Google Cloud Console , por exemplo para o desenvolvimento ou depuração . Saiba mais sobre quando isso pode ser recomendado posteriormente nesta página.

Encontrar suas chaves de API

Você pode visualizar e gerenciar chaves de API tudo do seu projeto nas APIs & Serviços> Credenciais painel no Google Cloud Console.

Você também pode encontrar que chave de API é automaticamente corresponde a um Firebase App nos seguintes locais. Por padrão, todos Firebase Apps do seu projeto para a mesma plataforma (iOS vs Android vs Web) vai usar a mesma chave de API.

  • Firebase iOS Apps - Encontrar a chave de um aplicativo autopareado API no arquivo de configuração Firebase, GoogleService-Info.plist , na API_KEY campo.

  • Firebase Apps Android - Localizar chave de API autopareado de um aplicativo no arquivo de configuração Firebase, google-services.json , na current_key campo.

  • Firebase Web Apps - Localizar chave de API autopareado de um aplicativo no objeto de configuração Firebase, na apiKey campo.

Usando uma chave de API

Chaves de API são usadas para identificar seu projeto Firebase ao interagir com os serviços Firebase / Google. Especificamente, eles são usados ​​para associar solicitações de API ao seu projeto para cota e faturamento. Eles também são úteis para acessar dados públicos.

Por exemplo, você pode usar explicitamente uma chave de API passando seu valor para uma chamada de API REST como um parâmetro de consulta. Este exemplo mostra como você pode fazer um pedido para o Dinâmico ligação ligações encurtador de API :

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

Quando seu aplicativo faz uma chamada para uma API do Firebase, ele procura automaticamente no arquivo / objeto de configuração do Firebase a chave de API do seu projeto. Você pode, no entanto, definir suas chaves de API usando um mecanismo diferente, incluindo variáveis ​​de ambiente.

Aplicar restrições à chaves de API (recomendado)

Embora não seja necessário tratar uma chave de API para serviços do Firebase como um segredo, há alguns casos específicos (veja abaixo) em que você pode querer tomar medidas adicionais para proteger seu projeto do uso indevido da chave de API.

Limite a cota se você usar autenticação baseada em senha

Se você usar autenticação Firebase baseada em senha e alguém se apodera de sua chave API, eles não serão capazes de acessar qualquer um banco de dados do seu projeto Firebase ou dados de armazenamento em nuvem, desde que esses dados são protegidos por regras de segurança de Firebase . Eles podem, no entanto, usar sua chave de API para acessar os endpoints de autenticação do Firebase e fazer solicitações de autenticação em seu projeto.

Para mitigar contra a possibilidade de que alguém pode abusar uma chave de API para tentar um ataque de força bruta, você pode apertar a cota padrão dos identitytoolkit.googleapis.com endpoints para refletir as expectativas normais de tráfego do seu aplicativo. Esteja ciente de que se você restringir essa cota e seu aplicativo ganhar usuários repentinamente, você poderá obter erros de login até aumentar a cota. Você pode alterar quotas de API de seu projeto no Google Cloud Console .

Use chaves de API restritas e separadas para tipos específicos de APIs

Embora as chaves de API usadas para serviços do Firebase geralmente não precisem ser tratadas como secretas, você deve tomar alguns cuidados extras com as chaves de API usadas para conceder acesso às APIs do Google Cloud que você ativou manualmente.

Se você usa uma API do Google Cloud (em qualquer plataforma) que não é ativada automaticamente pelo Firebase (ou seja, você mesmo a ativou), deve considerar a criação de chaves de API restritas e separadas para uso com essas APIs. Isso é particularmente importante se a API for um serviço faturável do Google Cloud.

Por exemplo, se você usar Visão da nuvem APIs do Firebase ML no iOS, você deve criar chaves de API separadas que utilize apenas para acessar a visão APIs nuvem.

Usando chaves de API separados, restritas para não Firebase-APIs, você pode girar ou substituir as chaves quando necessário e adicionar restrições adicionais para as chaves de API sem interromper seu uso dos serviços Firebase.

Use as teclas específicas do ambiente de API (recomendado)

Se você configurar diferentes projetos do Firebase para diferentes ambientes, como teste e produção, é importante que cada instância do aplicativo interaja com seu projeto correspondente do Firebase. Por exemplo, a instância do aplicativo de teste nunca deve se comunicar com o projeto de produção do Firebase. Isso também significa que seu aplicativo de teste precisa usar chaves de API associadas ao seu projeto de teste do Firebase.

Para reduzir os problemas de promoção de alterações de código do desenvolvimento à preparação para a produção, em vez de incluir chaves de API no próprio código, defina-as como variáveis ​​de ambiente ou inclua-as em um arquivo de configuração.

Observe que, se estiver usando o Firebase Local Emulator Suite para desenvolvimento junto com o Firebase ML, você deve criar e usar uma chave de API somente para depuração. Instruções para criar esse tipo de chave são encontrados nos docs Firebase ML .

FAQs