Saiba mais sobre o Android e o Firebase

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 a BoM do Firebase para Android, atualize as dependências no arquivo do Gradle do módulo (nível do app), que geralmente é app/build.gradle, para importar a plataforma da 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.

Lista de materiais (BoM) do Firebase para Android

A lista de materiais (BoM) do Firebase para Android permite gerenciar todas as versões de biblioteca do Firebase especificando apenas uma versão: a versão da BoM.

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

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

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

Veja como usar a BoM do Firebase para Android para declarar dependências no arquivo Gradle do módulo (nível do app), que geralmente é app/build.gradle. Ao usar a 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:32.3.1')

  // 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'
}

Veja algumas perguntas frequentes sobre como usar a BoM do Firebase para Android:

Comparar as versões da BoM do Firebase

Bibliotecas de extensões Kotlin (KTX)

As bibliotecas de extensões do Firebase para Kotlin (KTX) são pequenos complementos aos SDKs básicos do Firebase que permitem escrever um código Kotlin bem-feito e idiomático.

Para usar uma biblioteca KTX no seu app, altere sua dependência para incluir o sufixo -ktx. Cada biblioteca KTX tem automaticamente uma dependência na biblioteca base, portanto, não é necessário incluir as duas dependências no seu app.

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

  // Declare the base library
  implementation 'com.google.firebase:firebase-analytics'

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

Cada biblioteca KTX fornece diferentes extensões sintáticas da biblioteca base. Por exemplo, a biblioteca KTX do Analytics simplifica o registro de eventos:

Antes (usando a biblioteca base)

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 a biblioteca 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 uma biblioteca KTX, exceto o Firebase ML e a Indexação de apps.

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 (BoM do Firebase 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 a 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:

  • Os produtos como Dynamic Links ou Mensagens no app do Firebase, que dependem do evento first_open do Analytics, vão perder esse evento quando usados em um módulo de recurso dinâmico.

  • Ao usar o Cloud Firestore e o Authentication juntos, sempre inclua-os no mesmo módulo. Se isso não for possível, verifique se o Authentication foi carregado antes do Cloud Firestore. Caso contrário, algumas operações do Cloud Firestore podem 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