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ões
  • Artigos
  • Podcasts
  • Artigos de educação corporativa
Conteúdos
  • Alura Cases
  • Imersões
  • 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
  • Home

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    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 Inovação e Gestão
    • 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

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    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 multiplos 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

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    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

    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA
  • Artigos
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Carreiras

    Ver todas
    • 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
    Entrar Ver Planos
  • Área de Interesse

    Entrar Ver Planos
  • Aulas ao Vivo - Skills & Go

    • Agentic Engineering: orquestre multiplos 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
    Entrar Ver Planos
  • Senioridade

    Entrar Ver Planos
  • Eventos Alura

    • IA Conference
    • Alura Signals
    Entrar Ver Planos
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Artigos
  • 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
    • Plano Pro 24
    • Plano Plus 24
    • Plano Ultra Lab 24
    • 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 da Alura convidando profissionais a desenvolver habilidades em inteligência artificial para acompanhar as transformações do mercado de tecnologia. A campanha destaca que quem utiliza IA produz mais, cresce na carreira e se torna mais competitivo, reforçando que a inteligência artificial deixou de ser tendência e passou a ser uma habilidade essencial. O banner incentiva a começar a aprender IA com os cursos da Alura e impulsionar a transformação digital.

    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!

    Estude 2 anos por R$ 158/mês. Planos com até 35% OFF. Ver planos.
    Banner da Alura convidando profissionais a desenvolver habilidades em inteligência artificial para acompanhar as transformações do mercado de tecnologia. A campanha destaca que quem utiliza IA produz mais, cresce na carreira e se torna mais competitivo, reforçando que a inteligência artificial deixou de ser tendência e passou a ser uma habilidade essencial. O banner incentiva a começar a aprender IA com os cursos da Alura e impulsionar a transformação digital.

    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

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

    Leia também

    • 14/03/2012

      Injeção de dependências no Android com RoboGuice

      Ler mais
    • 16/09/2024

      iOS: o que é internacionalização e sua configuração inicial em um projeto

      Ler mais
    • 28/09/2015

      Utilizando Image Loaders no desenvolvimento Android

      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.