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 de 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 Firebase Security Rules (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 nos arquivos de configuração com check-in.

Embora as chaves de API para serviços do Firebase sejam seguras para incluir 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 do Google Cloud faturável. Saiba mais sobre esses casos mais adiante nesta página.

Como criar 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 Firebase

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

  • Criar um projeto do Firebase > Browser key criada automaticamente
  • Criar um aplicativo Apple Firebase > iOS key criada automaticamente
  • Criar um aplicativo para Android do Firebase > 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 encontrar qual chave de API corresponde automaticamente a um aplicativo do Firebase nos locais a seguir. Por padrão, todos os aplicativos do Firebase do seu projeto para a mesma plataforma (Apple x Android x 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 Android do Firebase — 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 um parâmetro de consulta. Este exemplo mostra como você pode fazer uma solicitação para a API do encurtador de links de links dinâmicos :

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 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.

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

Se você usar o Firebase Authentication com base 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 sejam protegidos pelas regras de segurança do Firebase . No entanto, eles podem 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 reduzir 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 de repente, 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 separadas e restritas 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 algumas precauções 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 seja ativada automaticamente pelo Firebase (ou seja, você mesmo a ativou), considere criar chaves de API separadas e restritas para uso com essas APIs. Isso é particularmente importante se a API for para um serviço faturável do Google Cloud.

Por exemplo, se você usa as APIs do Cloud Vision do Firebase ML no iOS, deve criar chaves de API separadas que você usa apenas para acessar as APIs do Cloud Vision.

Ao usar chaves de API separadas e restritas 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 ambientes diferentes, como preparação e produção, é importante que cada instância do aplicativo interaja com o projeto correspondente do Firebase. Por exemplo, sua instância do 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 os problemas de promoção de alterações de código do desenvolvimento à preparação para a produção, em vez de incluir as 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 de depuração. As instruções para criar esse tipo de chave são encontradas nos documentos do Firebase ML .

Perguntas frequentes