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

Uma chave de API é uma string exclusiva usada para rotear 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 do 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 do modo como as chaves de API são normalmente usadas, as chaves de API para serviços do Firebase não são usadas para controlar o acesso a recursos de back-end ; isso só pode ser feito com 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 vault 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 nos arquivos de configuração com check-in.

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

Criando 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 automaticamente chaves de API para seu projeto quando você executa uma das seguintes ações:

  • Crie um projeto do Firebase > Browser key criada automaticamente
  • Crie um aplicativo Firebase Apple> iOS key criada automaticamente
  • Crie um aplicativo Firebase para Android > Android key criada automaticamente

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

Encontrando suas chaves de API

Você pode visualizar e gerenciar todas as chaves de API do seu projeto no painel APIs e serviços > Credenciais no console do Google Cloud.

Você também pode descobrir qual chave de API corresponde automaticamente a um aplicativo do Firebase nos seguintes locais. Por padrão, todos os aplicativos Firebase do seu projeto para a mesma plataforma (Apple, Android ou Web) usarão a mesma chave de API.

  • Firebase Apple Apps – Encontre a chave de API de correspondência automática de um aplicativo no arquivo de configuração do Firebase, GoogleService-Info.plist , no campo API_KEY .

  • Aplicativos Firebase para Android : encontre a chave de API de correspondência automática de um aplicativo no arquivo de configuração do Firebase, google-services.json , no campo current_key .

  • Firebase Web Apps – Encontre a chave de API de correspondência automática de um aplicativo no objeto de configuração do Firebase, no campo apiKey .

Usando uma chave de API

As chaves de API são usadas para identificar seu projeto do Firebase ao interagir com os serviços do 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 parâmetro de consulta. Este exemplo mostra como você pode fazer uma solicitação à API do encurtador de links do Dynamic Links :

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. No entanto, você pode definir suas chaves de API usando um mecanismo diferente, incluindo variáveis ​​de ambiente.

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

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

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

Se você usar o Firebase Authentication baseado em senha e alguém obtiver sua chave de API, essa pessoa não poderá acessar nenhum banco de dados do seu projeto do Firebase ou dados do Cloud Storage , desde que esses dados estejam protegidos pelas regras de segurança do Firebase . No entanto, eles poderiam 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 a possibilidade de alguém usar indevidamente uma chave de API para tentar um ataque de força bruta, você pode restringir a cota padrão dos endpoints identitytoolkit.googleapis.com 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á receber erros de login até aumentar a cota. Você pode alterar as cotas de API do seu projeto no console do Google Cloud .

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), considere criar chaves de API restritas e separadas para uso com essas APIs. Isso é especialmente importante se a API for para um serviço faturável do Google Cloud.

Por exemplo, se você usar APIs Cloud Vision do Firebase ML no iOS, deverá criar chaves de API separadas que serão usadas apenas para acessar as APIs Cloud Vision.

Ao usar chaves de API restritas e separadas para APIs que não são do Firebase, você pode alternar ou substituir as chaves quando necessário e adicionar restrições adicionais às chaves de API sem interromper o uso dos serviços do Firebase.

Use chaves de API específicas do ambiente (recomendado)

Se você configurar diferentes projetos do Firebase para diferentes ambientes, como preparação e produção, é importante que cada instância do aplicativo interaja com o projeto correspondente do Firebase. Por exemplo, a instância do seu aplicativo de teste nunca deve se comunicar com seu 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 problemas ao promover alterações de código desde o desenvolvimento até a preparação e 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 você estiver usando o Firebase Local Emulator Suite para desenvolvimento junto com o Firebase ML, deverá criar e usar uma chave de API somente para depuração. As instruções para criar esse tipo de chave são encontradas nos documentos do Firebase ML .

Perguntas frequentes