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ê 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. Em um projeto, crie apps do Firebase registrando seus apps para iOS, Android ou da Web. Depois de registrar seus apps com o Firebase, adicione os SDKs 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 registrar apps

É possível configurar um projeto do Firebase e registrar aplicativos no Console do Firebase (ou, para casos de uso avançados, por meio da API REST do Firebase Management ou a Firebase CLI). Ao configurar um projeto e registrar apps, você precisa tomar algumas decisões organizacionais e adicionar informações de configuração específicas do Firebase aos seus projetos locais.

Revise algumas práticas recomendadas gerais no nível do projeto (na parte inferior desta página) antes de configurar um projeto e registrar apps.

O nome do projeto

Ao criar um projeto, você fornece um nome de projeto. Esse identificador é o nome interno do 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 entre vários projetos.

É possível editar um nome de projeto a qualquer momento nas Configurações do projeto do Console do Firebase. O nome do projeto é exibido no painel superior.

O número do projeto

Um projeto do Firebase e o projeto do GCP associado a ele têm um número de projeto. Este é o identificador canônico exclusivo atribuído pelo Google do 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 um 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 o número do projeto

  • Console do Firebase: clique em Configurações do projeto. O número do projeto é exibido no painel superior.

  • 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 contém o número do projeto no objeto FirebaseProject.

O ID do projeto

Um projeto do Firebase e o projeto do GCP associado a ele têm um ID do projeto. Esse é um identificador exclusivo definido pelo usuário para o 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 ID 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: PROJECT_ID.web.app e PROJECT_ID.firebaseapp.com
  • URL padrão do Realtime Database: PROJECT_ID.firebaseio.com
  • Nome padrão do bucket do Cloud Storage: PROJECT_ID.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. Conecte domínios personalizados a um site hospedado pelo Firebase, fragmente o Realtime Database e crie vários buckets do Cloud Storage (acesse a página "Primeiros passos" específica da plataforma).

Firebase CLI e o ID 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 os comandos do firebase para comunicar com qual projeto do Firebase você quer interagir.

Também é possível configurar um alias de projeto para cada projeto do Firebase, de modo que você não precise se lembrar dos IDs.

Chamadas de API e o ID do projeto

Em muitas chamadas de API, você precisa incluir um identificador exclusivo para um 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 o ID do projeto

  • Console do Firebase: clique em Configurações do projeto. O ID do projeto é 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 contém o ID do projeto no objeto FirebaseProject.

Arquivos e objetos de configuração do Firebase

Quando você registra um app em um projeto do Firebase, o Console do Firebase fornece um arquivo de configuração (apps para iOS/Android) ou um objeto de configuração (apps da Web) para adicionar diretamente ao diretório do app local.

  • Em apps para iOS, adicione um arquivo de configuração GoogleService-Info.plist.
  • Em apps para Android, adicione um arquivo de configuração google-services.json.
  • Em apps da Web, adicione um objeto de configuração do Firebase.

A qualquer momento, é possível acessar um arquivo ou objeto de configuração do Firebase.

Um arquivo de configuração ou objeto do Firebase associa um app a um projeto específico do Firebase e aos respectivos recursos (bancos de dados, buckets de armazenamento etc.). A configuração inclui "opções do Firebase", que são parâmetros exigidos pelos serviços do Firebase e do Google para se comunicar com as APIs do servidor do Firebase e para associar os dados do cliente ao projeto e ao app do Firebase. Veja o mínimo obrigatório de "Opções do Firebase":

  • 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 o projeto em todo o Firebase e o GCP. Esse identificador pode aparecer em URLs ou nomes para alguns recursos do Firebase, mas geralmente é tratado como um alias de conveniência para se referir ao projeto. (valor de exemplo: myapp-project-123)

  • ID do aplicativo ("AppID"): o identificador exclusivo do app do Firebase em todo o Firebase com um formato específico da plataforma:

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

O conteúdo do objeto ou do arquivo de configuração do Firebase é considerado público, inclusive o ID específico da plataforma do app (ID do pacote do iOS ou o nome do pacote do Android) e os valores específicos do projeto do Firebase, como a chave de API, o ID do projeto, o URL do Realtime Database e o nome do bucket do Storage. Sendo assim, utilize Regras de segurança do Firebase para proteger seus dados e arquivos no Realtime Database, no Cloud Firestore e no Cloud Storage.

Para projetos de código aberto, geralmente não recomendamos incluir o arquivo de configuração ou o objeto do Firebase no controle de origem, porque, na maioria dos casos, os usuários precisam criar os próprios projetos do Firebase e direcionar os aplicativos para os próprios recursos do Firebase (por meio do próprio arquivo de configuração ou objeto do Firebase).

Como gerenciar um projeto do Firebase

Revise as práticas recomendadas gerais no nível do projeto (na parte inferior da página) para ver considerações que podem afetar o gerenciamento de um projeto do Firebase.

Ferramentas para gerenciar um 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 do painel esquerdo, acesse as configurações de um projeto clicando em . As configurações de um projeto incluem integrações, permissões de acesso e faturamento.

O meio do console exibe botões que iniciam fluxos de trabalho de configuração para registrar 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, você terá acesso ao comando firebase global. Use a CLI para vincular seu diretório de aplicativos local a um projeto do Firebase e implantar novas versões de conteúdo hospedado pelo Firebase ou atualizações nas funções.

API REST Firebase Management

Use a API REST Firebase Management para gerenciar programaticamente um projeto do Firebase. Por exemplo, é possível registrar de maneira programática um app com um projeto ou listar os apps já registrados (iOS | Android | Web).

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 registrar as versões para iOS, Android e Web do mesmo app ou jogo com o 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 várias variantes de compilação com diferentes códigos de pacote do iOS ou nomes de pacote do Android definidos, é possível registrar cada variante com um projeto diferente do Firebase. No entanto, se você tiver variantes que compartilham os mesmos recursos do Firebase, registre-as no mesmo projeto do Firebase.

Não há restrição no número de apps que um projeto pode ter. No entanto, registrar um app pode criar um ou mais IDs do cliente do OAuth 2.0, e há um limite de cerca de 30 IDs do cliente que podem ser criados em um único 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 registrar 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 criação de projetos é limitada a uma contagem menor de projetos (geralmente em torno de 5 a 10).
    • Planos pagos: a cota de criação de projetos por conta de faturamento aumenta substancialmente, desde que a conta de faturamento do Cloud associada esteja em situação regular.

    O limite na cota de criação de projetos raramente é uma preocupação para a maioria dos desenvolvedores, mas, se necessário, peça um aumento na cota do projeto.

    Lembre-se de que a exclusão completa de um projeto requer 30 dias e é contabilizada na cota do projeto até que ele seja totalmente excluído.

  • Número de apps por projeto

    Não há restrição no número de apps que um projeto pode ter. No entanto, registrar um app pode criar um ou mais IDs do cliente do OAuth 2.0 subjacentes, e há um limite de cerca de 30 IDs do cliente que podem ser criados em um único 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