• Home

    Escolha seu Plano

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    Cursos

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    Cursos

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    Cursos

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    Cursos

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    Cursos

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    Cursos

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    Cursos

    Ver mais cursos de Gestão & Negócios
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    Cursos

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    Carreiras

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    Cursos

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    Cursos

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    Cursos

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre múltiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • Imersão Engenharia de Software: Dev na Era da IA
    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA

    Escolha seu Plano

    Conteúdos gratuitos

    Explore conteúdos gratuitos para aprender tecnologia no seu ritmo. Encontre artigos com conteúdos técnicos para aprender na prática, notícias para acompanhar as principais tendências do mercado e o Alura Labs, com análises e reflexões de especialistas sobre tecnologia, IA e carreira.

    Conteúdos gratuitos

    • Artigos
    • Notícias
    • Alura Labs
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Mobile
    3. Integrando App Android com o Firebase Cloud Messaging

    Integrando App Android com o Firebase Cloud Messaging

    6 min6 minutos de leitura

    6 min6 minutos de leitura

    Publicado: 14/08/2016

    Tela inicial de celular android

    Nesse artigo, aprenderemos a implementar uma solução mais adequada para a implantação de um sistema de notificação utilizando o FCM (Firebase Cloud Messaging).

    Lembrando que estarei utilizando o projeto (de teste) para a casa do código.

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    O pré-requisito para configurarmos o firebase é pelo menos ter uma conta do Google para entrar no sistema. Caso não tenha, crie uma conta.

    Nosso primeiro passo é entrar no console do Firebase, pois é a partir dele que criaremos o nosso projeto:

    pagina_home

    Nessa página, criaremos um projeto que representará o nosso projeto da casa do código, portanto, clique no botão azul "CRIAR NOVO PROJETO":

    criando_projeto

    Dê um nome ao projeto, nesse exemplo, utilizarei o nome "cdc teste" e a região marcarei como "Brasil". Em seguida, clique no botão azul "CRIAR PROJETO":

    overview_firebase

    Agora que criamos um projeto no Firebase, precisamos adicionar o Firebase na nossa App, nesse caso, faremos isso para uma App Android, ou seja, clique no círculo verde que tem o robozinho do Android:

    inserindo_detalhes

    Nesse instante, estamos adicionando o nome do pacote da App, nesse projeto, temos o seguinte pacote: "br.com.caelum.casadocodigo". A informação de certificado de assinatura é opcional, portanto, não precisamos preenchê-la. Então, clique no botão azul "ADICIONAR APLICATIVO

    gerando_json_de_configuracao

    Nessa tela, o Firebase envia um arquivo json, via download, de configuração para que adicionemos na nossa App. Observe que é demonstrado o local correto para adicionar o arquivo, ou seja, dentro do diretório "app" conforme abaixo:

    adicionando_json

    Em seguida, clique em "CONTINUAR". Agora, o Firebase pede para realizarmos algumas configurações nos arquivos build.gradle tanto no nível projeto quanto no módulo. Então vamos realizar essas modificações.

    Primeiro adicionaremos o trecho classpath 'com.google.gms:google-services:3.0.0' no arquivo build.gradle do projeto, ou seja, build.gradle (Project: CasaDoCodigo):

    
    buildscript { repositories 
    { jcenter() } 
    dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.google.gms:google-services:3.0.0' } }
    //restante do código
    

    Agora, vamos alterar o arquivo build.gradle (Module: app) do módulo, adicionando o plugin 'com.google.gms.google-services':

    
    apply plugin: 'com.android.application'
    android { // restante do código }
    dependencies { //dependências }
    apply plugin: 'com.google.gms.google-services'
    

    O próprio Firebase indica que adicionemos o plugin na parte de baixo do arquivo. Portanto, manteremos o plugin no final do arquivo. Por fim, clique em "Sync now" para sincronizar a configuração que realizamos.

    Após a sincronização, no console do Firebase, clique em "FINALIZAR":

    overview_com_app_adicionada

    Veja que agora temos um projeto criado! Será que já da pra enviar uma mensagem a partir do Firebase? Até da, porém, ainda não configuramos a nossa App para receber essas mensagens do Firebase. Portanto, iremos configurar agora.

    Primeiro, precisamos adicionar a dependência do firebase compile 'com.google.firebase:firebase-messaging:9.0.2' no nosso módulo, pois é a partir dela que teremos acesso às APIs do Firebase para o serviço mensageiro. Então vamos adicioná-la:

    
    dependencies { //outras dependências compile 'com.google.firebase:firebase-messaging:9.0.2' }
    

    Clique em "Sync now" para sincronizar o projeto. Finalizando a sincronização, o nosso próximo passo é criar duas classes de configuração, mas, antes de criar essas classes, vamos criar o pacote para elas com o nome "br.com.caelum.casadocodigo.firebase".

    A primeira classe que criaremos estenderá da classe FirebaseInstanceIDService do pacote com.google.firebase.iid, portanto, criaremos a classe CDCInstanceIDService:

    
    public class CDCInstanceIDService extends FirebaseInstanceIdService {
    }
    

    Essa classe será responsável em receber um token único que o Firebase gera para vincular ao dispositivo, pois, a partir desse token, o Firebase consegue enviar as mensagens para os dispositivos. Para pegarmos esse token, podemos sobrescrever o método onTokenRefresh():

    
    public class CDCInstanceIDService extends FirebaseInstanceIdService { 
    @Override public void onTokenRefresh() { 
        super.onTokenRefresh();
    String token = FirebaseInstanceId.getInstance().getToken(); 
    Log.d("Token da App", token); } }
    

    Esse método pode ser chamado a partir das seguintes ações.

    • Deletando o Instance ID.
    • Restaurando a App em um novo dispositivo.
    • Usuário deletando ou reinstalando a App.
    • Usuário limpando os dados da App.

    A próxima classe que criaremos é a CDCMessasingService que estenderá da classe FirebaseMessagingService:

    
    public class CDCMessasingService extends FirebaseMessagingService {
    }
    

    Essa é a classe que ficará responsável em receber as mensagens do Firebase, ou seja, a partir dela, a nossa App ficará escutando qualquer requisição referente às mensagens vindas do FCM.

    Por fim, precisamos informar ao Android que essas duas classes que criamos, serão Services, ou seja, elas ficarão funcionando em background sem nenhuma intervenção do usuário em interface gráfica! Mas como fazemos isso? Simples! basta adicionar no AndroidManifest.xml:

    
    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.caelum.casadocodigo"> <!-- permissions -->
    <application android:name=".aplication.CasaDoCodigoStore" android:allowBackup="true" android:icon="@drawable/casadocodigo" android:label="@string/app_name" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> <activity android:name=".activity.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" />
    <!-- activities -->
    <service android:name=".firebase.CDCMessasingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
    <service android:name=".firebase.CDCInstanceIDService"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> </intent-filter> </service>
    </application> </manifest>
    

    Agora sim podemos testar a nossa App. Ao abrir o emulador, ou então, no seu próprio celular, desinstale a App para garantir que Firebase gere o token sem nenhum problema. Então rode a App:

    projeto-cdc-tela-principal

    A princípio, não aconteceu nada de diferente, mas se olharmos o logcat:

     D/Token da App: cs8iGqkukl0:APA91bEoHd0g6yF2IDy4pufDmuUNxagCQRu0BYp7PsmBA3FmCyuY36DLaQg...
    

    Observe que ele gerou um token para a nossa App, em outras palavras, agora a nossa App e o Firebase estão integrados! Por enquanto, copie o token para podermos enviar uma mensagem para o nosso dispositivo.

    Agora, no console do Firebase, vá no menu "Notifications":

    enviando_mensagem

    Clique no botão azul "ENVIE SUA PRIMEIRA MENSAGEM":

    notification_send1

    Preencha o campo obrigatório "Texto da mensagem" e na opção de segmentação, escolha a opção "Dispositivo único", e então, cole o token que foi gerado. Mais abaixo, existe as opções avançadas, clique nela:

    notification_opt_adv

    Veja que temos o campo título, que refere-se ao título que a notificação terá. Portanto, adicione também um título para ela, nesse exemplo, eu adicionei: "Casa do Código". Em seguida, clique no botão azul "ENVIAR MENSAGEM":

    notification_confirm

    Observe que o Firebase mostra um resumo da requisição para que você confirme o envio da notificação, caso estiver tudo correto, apenas clique em "ENVIAR".

    Se a App estiver aberta, nada acontece... Por que será? É justamente porque a API messaging do Firebase quando envia uma notificação, por padrão, envia automaticamente para o Android apenas em background, ou seja, só irá aparecer se não estivermos na App. Portanto, se você estiver com a App aberta, saia da App e reenvie a mensagem no console do Firebase, caso contrário, veja o resultado:

    recebendo_notificacao_background

    Veja que a notificação aparece! Note também, que quando tocamos nela, ela já abre a activity LAUNCHER, nesse caso a MainActivity. Em outras palavras, sem ao menos pedir para o server, recebemos uma mensagem. Portanto, conseguimos implementar o push notification! ;)

    Além de enviar notificações via console, podemos também enviar via HTTP ou XMPP.

    No próximo post veremos como podemos receber e exibir uma notificação também em foreground, isto é, com a App aberta.

    E aí, o que achou do Firebase? Pretende utilizá-lo nos seus projetos atuais ou futuros? Deixe seu comentário sobre o que achou ou sua experiência durante a implementação.

    Curtiu essa dica? Quer aprender mais ou iniciar sua carreira como um dev Android? na Alura, agora temos uma formação Android, onde você aprenderá a criar a sua App do início ao fim com muita prática!

    Banner do Guia Tático Alura sobre carreira em tecnologia, destacando o mapa da carreira tech. A imagem convida a explorar diferentes caminhos profissionais, comparar possibilidades e encontrar a próxima fase da carreira na área de tecnologia, com chamada “Explore o mapa”.

    Avalie este artigo

    • Foto de Alex Felipe

      Autor(a)

      Alex Felipe

      Alex é instrutor e desenvolvedor e possui experiência em Java, Kotlin, Android. Atualmente cria conteúdo no canal https://www.youtube.com/@AlexFelipeDev.

    Explore por tópico

    • Back-end
    • Dados
    • DevOps
    • Front-end
    • Gestão & Negócios
    • Institucionais
    • Inteligência Artificial
    • Mobile
    • UX & Design

    Leia também

    • 07/04/2025

      React Native: um guia definitivo para publicar seu aplicativo

      Ler mais
    • 19/02/2017

      Splash Screen criando uma tela de abertura no Android

      Ler mais
    • 12/09/2018

      Indo um pouco além com Room

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.

    Institucional

    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status
    Institucional
    • Sobre nós
    • Trabalhe Conosco
    • Para Empresas
    • Para Escolas
    • Política de Privacidade
    • Compromisso de Integridade
    • Termos de Uso
    • Canal de Ética
    • Código de Ética
    • Fale Conosco
    • Documentos Institucionais
    • Status

    A Alura

    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes
    A Alura
    • Como Funciona
    • Inteligência Artificial
    • Plataforma
    • Depoimentos
    • Instrutores(as)
    • Dev em <T>
    • Luri, a Inteligência Artificial da Alura
    • IA Conference
    • Cursos Imersivos
    • Perguntas Frequentes

    Conteúdos

    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Conteúdos
    • Alura Cases
    • Imersão Engenharia de Software: Dev na Era da IA
    • Artigos
    • Podcasts
    • Artigos de educação corporativa
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Uma Empresa do GrupoLogo Grupo Alun

    Outras empresas do Grupo Alun

    • FIAP
    • STARTSE
    • PM3
    • LUMINA

    Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

    Redes Sociais & Apps

    instagram
    youtube
    tiktok
    x
    appStore
    googlePlay
    Alura