Noções básicas sobre o Firebase para Android

Ao desenvolver seu projeto Android usando o Firebase, você pode descobrir conceitos desconhecidos ou específicos do Firebase. O objetivo desta página é responder a perguntas ou indicar a você recursos para obter mais informações.

Se você tiver dúvidas sobre um tópico não abordado nesta página, acesse uma das nossas comunidades on-line. Também atualizaremos esta página com novos tópicos periodicamente, então volte sempre para ver se adicionamos o tópico de seu interesse.

Plug-in do Firebase Assistente para Android Studio

O Firebase Assistente é um plug-in do Android Studio que registra seu app Android em um projeto do Firebase e adiciona os arquivos de configuração, plug-ins e dependências necessários ao seu projeto do Android. Tudo isso a partir do Android Studio.

Siga as instruções na página de introdução ao Android para usar o Firebase Assistente. Verifique se você está usando as versões mais atualizadas do Android Studio e do Firebase Assistente (acesse Arquivo > Verificar atualizações).

Quando você seleciona produtos específicos do Firebase para adicionar ao seu app, o Firebase Assistente declara automaticamente as dependências necessárias no arquivo app/build.gradle. No entanto, para usar os recursos do Firebase que estão além dos recursos atuais do Firebase Assistente, recomendamos fazer algumas mudanças manuais nestas dependências:

  • Se você quiser usar o Firebase Android BoM, atualize as dependências no arquivo do Gradle do módulo (nível do app) (geralmente app/build.gradle) para importar a plataforma BoM. Também será necessário remover as versões de cada linha de dependência da biblioteca do Firebase.

  • Se você quiser usar uma biblioteca de extensões do Kotlin, modifique a linha de dependência adicionada ao arquivo do Gradle do módulo (nível do app), que geralmente é app/build.gradle, para usar a versão ktx da biblioteca do Firebase.

Serviços do Google: plug-in e arquivo de configuração

Como parte da adição do Firebase ao seu projeto Android, é necessário adicionar o plug-in google-services e um arquivo de configuração google-services.json ao projeto.

Se você adicionar o Firebase ao seu projeto Android usando o Console do Firebase, a API REST de gerenciamento ou a CLI do Firebase, adicione manualmente o plug-in e o arquivo de configuração ao seu projeto. No entanto, se você usar o Firebase Assistente, essas tarefas serão feitas de maneira automática para você durante a configuração.

Consulte a documentação do Android para saber como o plug-in e o arquivo de configuração dos serviços do Google funcionam juntos.

Firebase Android BoM (Bill of Materials)

Com o Firebase Android BoM (Bill of Materials), você pode gerenciar as versões da biblioteca do Firebase especificando apenas uma versão: a do BoM.

Quando você usa Firebase BoM no seu app, BoM extrai automaticamente as versões de bibliotecas individuais associadas à versão do BoM. Todas as versões de bibliotecas individuais serão compatíveis. Quando você atualiza a versão do BoM no seu app, todas as bibliotecas do Firebase usadas no app são atualizadas para as versões associadas ao BoM.

Para saber quais versões das bibliotecas do Firebase estão mapeadas para uma versão específica do BoM, confira as devidas notas da versão do BoM. Se você precisar comparar as versões da biblioteca associadas a uma versão do BoM com outra versão do BoM, use o widget de comparação abaixo.

Saiba mais sobre o suporte do Gradle para plataformas do BoM.

Confira como usar o Firebase Android BoM para declarar dependências no arquivo Gradle do módulo (nível do app) (geralmente app/build.gradle). Ao usar o BoM, não especifique versões de biblioteca individuais nas linhas de dependência.

dependencies {
  // Import the BoM for the Firebase platform
  implementation platform('com.google.firebase:firebase-bom:33.6.0')

  // Declare the dependencies for the desired Firebase products without specifying versions
  // For example, declare the dependencies for Firebase Authentication and Cloud Firestore
  implementation 'com.google.firebase:firebase-auth'
  implementation 'com.google.firebase:firebase-firestore'
}

Confira algumas perguntas frequentes sobre o uso do Firebase Android BoM:

Comparar versões do Firebase BoM

Módulos de biblioteca de extensões Kotlin (KTX)

Os módulos de biblioteca de extensões do Firebase para Kotlin (KTX) são pequenos complementos dos principais módulos de biblioteca do Firebase. Eles podem ser usados para escrever um código Kotlin bonito e idiomático.

Para usar uma biblioteca KTX no seu app, altere sua dependência para incluir o sufixo -ktx. Cada módulo KTX tem automaticamente uma dependência no módulo principal da biblioteca. Portanto, não é necessário incluir as duas dependências no app.

dependencies {
  // Import the BoM for the Firebase platform (learn more)
  implementation platform('com.google.firebase:firebase-bom:33.6.0')

  // Declare the main module
  implementation 'com.google.firebase:firebase-analytics'

  // Declare the KTX module instead (which automatically has a dependency on the main module)
  implementation 'com.google.firebase:firebase-analytics-ktx'
}

Cada módulo KTX oferece extensões sintáticas diferentes do módulo principal. Por exemplo, o módulo KTX do Analytics simplifica o registro de eventos:

Antes (usando o módulo principal)

val analytics = FirebaseAnalytics.getInstance();
val bundle = Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
analytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, bundle);

Depois (usando o módulo KTX)

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
    param(FirebaseAnalytics.Param.ITEM_ID, id)
    param(FirebaseAnalytics.Param.ITEM_NAME, name)
    param(FirebaseAnalytics.Param.CONTENT_TYPE, "image")
}

Todos os produtos do Firebase oferecem um módulo KTX, exceto Firebase ML e App Indexing.

Caso ainda não tenha feito isso, confira a documentação de referência da API para as bibliotecas de KTX.

Módulos de recursos e Play Feature Delivery

Desde maio de 2021 (Firebase BoM v28.0.0), os SDKs do Firebase para Android podem ser usados em módulos de recursos dinâmicos instalados separadamente do módulo base do seu aplicativo.

Para ativar o suporte a módulos de recursos dinâmicos, adicione a seguinte dependência ao arquivo build.gradle do módulo base:

dependencies {
  implementation 'com.google.firebase:firebase-dynamic-module-support:16.0.0-beta03'
}

Agora que você adicionou o suporte a módulos dinâmicos, é possível adicionar dependências do SDK do Firebase (com ou sem Firebase BoM) a módulos de recurso do seu app e usá-las normalmente.

Por exemplo, se o aplicativo usa o Realtime Database para potencializar um recurso específico em tempo real, adicione a dependência firebase-database ao build.gradle do módulo de recurso e não ao módulo base. Isso reduzirá o tamanho do download para a maioria dos usuários.

Esteja ciente dos seguintes avisos ao usar os SDKs do Firebase nos módulos de recursos:

  • Produtos como Dynamic Links ou Firebase In-App Messaging, que dependem do evento first_open do Analytics, podem perder esse evento quando usado em um módulo de recurso dinâmico.

  • Ao usar Cloud Firestore e Authentication juntos, sempre inclua ambos no mesmo módulo. Se isso não for possível, verifique se Authentication foi carregado antes de Cloud Firestore. Caso contrário, algumas operações de Cloud Firestorepodem ter um estado de autenticação incorreto.

  • Ao usar firebase-crashlytics-ndk como uma dependência de um módulo de recurso dinâmico, você precisa definir a propriedade unstrippedNativeLibsDir no arquivo build.gradle do app, conforme descrito na Documentação do Crashlytics para NDK.

Para mais informações sobre módulos de recursos e Play Feature Delivery, acesse esta página.

Plug-in do Gradle para serviços do Google vs. Google Play Services vs. Google Play Store

Várias partes do ecossistema Google, Firebase e Android têm convenções de nomenclatura semelhantes. A seguir, há uma breve explicação para cada uma:

Plug-in do Google Services para Gradle
Um plug-in do Gradle (com.google.gms.google-services) executado no tempo de compilação para garantir que o app tenha a configuração correta para acessar as APIs do Firebase e do Google.
Embora tenha esse nome, o plug-in não tem relação com o Google Play Services (veja a próxima entrada). Além disso, ele também não tem impacto sobre os recursos do app no ambiente de execução.
Esse plug-in também processa o arquivo google-services.json adicionado ao app como parte da configuração do Firebase. Saiba mais sobre o plug-in do Gradle para Serviços do Google.
Google Play Services
Um serviço em segundo plano invisível executado em um dispositivo Android e que disponibiliza várias APIs comuns do Google (como o Google Maps e o Login do Google) aos apps no dispositivo.
Ao centralizar essas APIs comuns em um único serviço, o tamanho de outros apps é reduzido, permitindo que um dispositivo receba atualizações de segurança automáticas e melhorias de recursos sem uma atualização do SO. Saiba mais sobre o Google Play Services.
Google Play Store
Uma loja para fazer o download de apps, filmes, livros e muito mais em um dispositivo Android
Como desenvolvedor, você gerencia a distribuição, os lançamentos e outras coisas do seu app no Google Play Console. Se um dispositivo tiver a Google Play Store, ele também estará executando o Google Play Services (veja a entrada anterior). Saiba mais sobre a Google Play Store para desenvolvedores.
Serviços relacionados a jogos do Google Play
Um conjunto de APIs para desenvolvedores de jogos de dispositivos móveis
Saiba mais sobre os serviços relacionados a jogos do Google Play e como integrar o Firebase ao seu projeto nessa plataforma.

Recursos de código aberto para SDKs do Firebase para Android

O Firebase é compatível com o desenvolvimento de código aberto. Por isso, incentivamos contribuições e feedback da comunidade.

SDKs do Firebase para Android

A maioria dos SDKs do Firebase para Android é desenvolvida como bibliotecas de código aberto no nosso repositório público do Firebase no GitHub. Estamos trabalhando ativamente para transferir as bibliotecas do Firebase desenvolvidas restantes para o GitHub público em breve.

Amostras introdutórias

O Firebase mantém uma coleção de amostras introdutórias para a maioria das APIs do Firebase no Android. Encontre essas amostras no nosso repositório público de amostras introdutórias do Firebase no GitHub.

Você pode abrir cada amostra introdutória como um projeto do Android Studio e executá-la em um dispositivo móvel ou em um dispositivo virtual (AVD, na sigla em inglês). Ou use essas amostras introdutórias como código de exemplo para usar os SDKs do Firebase.

Outros tópicos de interesse