Entender os projetos do Firebase

Nesta página, mostramos visões gerais resumidas de vários conceitos importantes sobre projetos do Firebase. Quando disponível, siga os links para encontrar informações mais detalhadas sobre recursos, serviços e até outras plataformas. No fim desta página, você pode ver uma lista de práticas recomendadas gerais para projetos do Firebase.

Relação entre projetos, apps e produtos do Firebase

Um projeto do Firebase é a entidade de nível superior do Firebase. No seu projeto, você pode adicionar apps do Firebase que podem ser para iOS, Android ou Web. Depois de configurar seus apps para usar o Firebase, adicione os SDKs do Firebase a qualquer número de produtos do Firebase, como Analytics, Cloud Firestore, Monitoramento de desempenho ou Configuração remota.

Saiba mais sobre esse processo nos guias de primeiros passos (iOS | Android | Web | Unity | C++).

Relação entre projetos do Firebase e o Google Cloud Platform (GCP)

Quando você cria um novo projeto no Console do Firebase, na verdade está criando um projeto do Google Cloud Platform (GCP). Pense em um projeto do GCP como um contêiner virtual para dados, código, configuração e serviços. Um projeto do Firebase é um projeto do GCP que tem configurações e serviços adicionais específicos do Firebase. É possível até criar um projeto do GCP primeiro e depois adicionar o Firebase a ele.

Como um projeto do Firebase é um projeto do GCP:

Como configurar um projeto do Firebase e adicionar apps

É possível configurar um projeto do Firebase e adicionar apps no Console do Firebase ou, para casos de uso avançados, por meio da API REST Firebase Management. Ao configurar um projeto e adicionar seus aplicativos, você precisa tomar várias decisões de configuração e adicionar arquivos ou objetos de configuração especiais ao seu projeto local.

Revise algumas práticas recomendadas gerais antes de configurar seu projeto e adicionar apps.

Nome do projeto

Ao criar um projeto, você fornece um nome de projeto. Esse identificador é o nome interno do seu projeto no Console do Firebase, no Console do GCP , e na Firebase CLI. O nome do projeto não é disponibilizado publicamente em nenhum produto, serviço ou recurso do Firebase ou do GCP. Ele serve simplesmente para ajudar você a distinguir os vários projetos.

É possível editar o nome do projeto a qualquer momento nas Configurações do projeto. Ele é exibido no painel superior.

O número do projeto

Seu projeto do Firebase e o projeto do GCP associado têm um número. Esse é o identificador canônico globalmente exclusivo do seu projeto. Use esse número ao configurar integrações e/ou fazer chamadas de API para o Firebase, o Google ou os serviços de terceiros.

Chamadas de API e o número do projeto

Em muitas chamadas de API, você precisa incluir um identificador exclusivo para seu projeto. Embora muitas APIs aceitem o ID do projeto, é recomendável usar o número dele para fazer chamadas de API ao Firebase, Google ou serviços de terceiros.

Saiba mais sobre como usar identificadores de projeto, especialmente o número, no padrão AIP 2510 (em inglês) do Google.

Encontre seu número do projeto

  • Firebase CLI: execute firebase projects:list. O número é exibido junto a todos os projetos do Firebase associados à sua conta.

  • API REST Firebase Management: chame projects.list. O corpo da resposta conterá o número do projeto no objeto FirebaseProject.

ID do projeto

Seu projeto do Firebase e o projeto associado do GCP têm um ID. Esse é um identificador exclusivo definido pelo usuário para seu projeto no Firebase e no GCP. Quando você cria um projeto do Firebase, essa plataforma atribui automaticamente um ID exclusivo ao projeto, mas é possível editar esse valor durante a configuração. Esse identificador geralmente deve ser tratado como um alias de conveniência para fazer referência ao projeto.

Se você excluir um projeto, o código dele também será excluído e nunca poderá ser usado novamente.

Recursos do Firebase e o código do projeto

O ID do projeto é exibido em recursos do Firebase visíveis publicamente, por exemplo:

  • Subdomínio do Hosting padrão: projectID.web.app e projectID.firebaseapp.com
  • URL padrão do Realtime Database: projectID.firebaseio.com
  • Nome padrão do bucket do Cloud Storage: projectID.appspot.com

Para todos os recursos mencionados, é possível criar instâncias não padrão. Os nomes publicamente visíveis são totalmente personalizáveis, ao contrário dos nomes padrão. É possível conectar domínios personalizados ao seu site hospedado pelo Firebase, fragmentar o Realtime Database e criar vários buckets do Cloud Storage. Para saber mais, acesse a página "Primeiros passos" da sua plataforma.

Firebase CLI e código do projeto

Em alguns casos de uso, você pode ter vários projetos do Firebase associados ao mesmo diretório de apps local. Nessas situações, ao usar a Firebase CLI, você precisa transmitir a sinalização --project com seus comandos do firebase para comunicar com qual projeto do Firebase você quer interagir.

Também é possível configurar aliases para vários projetos do Firebase, de modo que você não precise se lembrar dos códigos.

Chamadas de API e ID do projeto

Em muitas chamadas de API, você precisa incluir um identificador exclusivo para seu projeto. Embora muitas APIs aceitem o ID do projeto, é recomendável usar o número dele para fazer chamadas de API ao Firebase, Google ou serviços de terceiros.

Saiba mais sobre como usar identificadores de projeto, especialmente o número, no padrão AIP 2510 (em inglês) do Google.

Encontrar seu código de projeto

  • Console do Firebase: clique em > Configurações do projeto. O ID é exibido no painel superior.

  • Firebase CLI: execute firebase projects:list. O ID do projeto é exibido com todos os projetos do Firebase associados à sua conta.

  • API REST Firebase Management: chame projects.list. O corpo da resposta conterá o ID do projeto no objeto FirebaseProject.

Arquivos e objetos de configuração do Firebase

Quando você adiciona um app ao seu projeto do Firebase, o Console do Firebase fornece um arquivo de configuração do Firebase (Android/iOS) ou um objeto de configuração (Web) que você adiciona diretamente ao projeto local.

  • Para iOS, adicione um arquivo de configuração GoogleService-Info.plist
  • Para Android, adicione um arquivo de configuração google-services.json
  • Para Web, adicione um objeto de configuração do Firebase aos seus scripts de inicialização.

Você pode solicitar os arquivos de configuração ou o objeto de configuração do Firebase a qualquer momento.

Um arquivo de configuração ou objeto de configuração do Firebase associa seu app ao projeto do Firebase e aos recursos dele (bancos de dados, buckets de armazenamento etc.). A configuração inclui "Opções do Firebase", que são parâmetros exigidos pela plataforma e os Serviços do Google para se comunicar com as APIs de servidor do Firebase e associar os dados do cliente ao seu projeto e aplicativo do Firebase. O conjunto mínimo e obrigatório de opções do Firebase inclui estas opções:

  • Chave de API: uma string criptografada e simples usada ao chamar determinadas APIs que não precisam acessar dados particulares do usuário (valor de exemplo: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO).

  • ID do projeto: um identificador exclusivo definido pelo usuário para seu projeto no Firebase e no GCP (valor de exemplo: myapp-project-123). O ID pode aparecer em URLs ou nomes de alguns recursos do Firebase, mas geralmente deve ser tratado como um alias de conveniência para fazer referência ao projeto.

  • ID do aplicativo ("AppID"): o identificador exclusivo do seu app do Firebase na plataforma, com um formato que depende do Firebase:

    • Apps do Firebase para Android: mobilesdk_app_id (valor de exemplo: 1:1234567890:android:321abc456def7890)
      Esse não é um nome de pacote do Android.
    • Apps do Firebase para iOS: GOOGLE_APP_ID (valor de exemplo: 1:1234567890:ios:321abc456def7890)
      Esse não é um ID do pacote da Apple.
    • Aplicativos do Firebase para a Web: appId (valor de exemplo: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c)

O conteúdo do arquivo de configuração do Firebase é considerado público, incluindo o ID específico da plataforma (inserido no fluxo de trabalho de configuração do Console do Firebase) e os valores específicos do seu projeto do Firebase, como a chave de API, o URL do Realtime Database e o nome do bucket do Storage. Sendo assim, utilize regras de segurança para proteger seus dados e arquivos no Realtime Database, no Cloud Firestore e no Cloud Storage.

Em projetos de código aberto, normalmente não recomendamos a inclusão do arquivo de configuração ou do objeto de configuração no controle de origem, já que, na maioria dos casos, os usuários precisam criar os próprios projetos do Firebase e apontar os apps para os próprios back-ends.

Como gerenciar um projeto do Firebase

Revise as práticas recomendadas gerais no nível do projeto para ver considerações que podem afetar o gerenciamento do seu projeto do Firebase.

Ferramentas para gerenciar seu projeto

Console do Firebase

O Console do Firebase oferece o ambiente mais sofisticado para gerenciar produtos, apps e configurações no nível do projeto do Firebase.

Console do Firebase: tela de visão geral do projeto

O painel à esquerda do console lista os produtos do Firebase, organizados por categorias de nível superior. Na parte superior desse painel, acesse as configurações do projeto clicando em . As configurações incluem integrações , permissões de acesso e faturamento.

O meio do Console mostra botões que iniciam fluxos de trabalho de configuração para adicionar vários tipos de apps. Quando você começa a usar o Firebase, a área principal do Console muda para um painel que mostra estatísticas dos produtos usados.

Firebase CLI (ferramenta de linha de comando)

O Firebase também oferece a Firebase CLI para configurar e gerenciar produtos específicos do Firebase, como o Firebase Hosting e o Cloud Functions para Firebase.

Depois de instalar a CLI usando npm, você terá acesso ao comando global firebase. Use a CLI para implantar novas versões do conteúdo hospedado pelo Firebase ou atualizações nas suas funções. Também é possível vincular seu diretório de apps local ao projeto do Firebase por meio dessa ferramenta.

API REST Firebase Management

Usando a API REST Firebase Management, você pode gerenciar programaticamente seu projeto do Firebase. Por exemplo, é possível adicionar de maneira programática um app para Android ou um app para iOS no projeto. Também é possível listar os aplicativos (Android / iOS) que estão no nele.

Práticas recomendadas gerais

Como adicionar apps a um projeto

Garanta que todos os apps em um projeto sejam apenas variantes de plataforma do mesmo aplicativo do ponto de vista do usuário final. É aconselhável adicionar as versões para Android, iOS e Web do mesmo app ou jogo ao mesmo projeto do Firebase. Geralmente, todos os apps em um projeto compartilham os mesmos recursos do Firebase (banco de dados, buckets de armazenamento etc.).

Se você tiver muitas variantes de compilação com vários IDs de pacote do iOS ou IDs de apps para Android definidos, é possível adicionar cada variante a um projeto diferente do Firebase. No entanto, se você tiver variantes que compartilham os mesmos recursos, adicione-as ao mesmo projeto do Firebase.

Não há restrição de número de apps que um projeto pode ter. No entanto, adicionar um aplicativo pode criar um ou mais IDs do cliente do OAuth 2.0 subjacentes, e há um limite de cerca de 30 IDs que podem ser criados em um projeto.

Multilocação

Não é recomendável conectar vários apps e/ou sites da Web logicamente independentes a um único projeto. Esse processo é geralmente chamado de "multilocação". A multilocação pode levar a sérios problemas de configuração e privacidade de dados, incluindo problemas não intencionais com agregação de análise, autenticação compartilhada, estruturas de banco de dados excessivamente complexas e dificuldades com regras de segurança.

Geralmente, se um conjunto de apps não compartilhar os mesmos dados e configurações, considere adicionar cada app a um projeto diferente do Firebase.

Por exemplo, se você desenvolver um aplicativo de marca branca, cada app com uma marca independente precisa ter um projeto do Firebase próprio. Assim, os aplicativos não compartilharão dados entre si, o que é recomendado por motivos de privacidade.

Observe alguns limites gerais para projetos, apps e sites do Firebase:

  • Número de projetos por conta

    • Plano Spark de nível gratuito: a cota de projeto é limitada a um pequeno número de projetos (geralmente em torno de 5 a 10).
    • Planos pagos: a cota de projeto por conta de faturamento aumenta substancialmente, desde que sua conta de faturamento do Cloud esteja em situação regular.

    O limite da cota de projeto raramente é uma preocupação para os desenvolvedores. No entanto, é possível solicitar um aumento dela.

    Observe que a exclusão completa de um projeto requer 30 dias, e ele continuará a afetar sua cota até ser totalmente excluído.

  • Número de apps por projeto

    Não há restrição de número de apps que um projeto pode ter. No entanto, adicionar um aplicativo pode criar um ou mais IDs do cliente do OAuth 2.0 subjacentes, e há um limite de cerca de 30 IDs que podem ser criados em um projeto.

  • Número de sites de hospedagem por projeto

    O recurso multisite do Firebase Hosting aceita no máximo 36 sites por projeto.

Como lançar seu app