Com o anúncio do fim do serviço do Parse (Facebook), muitos desenvolvedores de Apps se sentiram órfãos, mas o Firebase veio para resolver isso.
Mas o pessoal do Firebase anunciou um novo leque de serviços, incluindo Host,
Autenticação de Usuários, Envio de Mensagens Push, Analise de Comportamento de usuários e muito mais. O melhor de tudo, a maioria é grátis e ilimitado, os serviços que não são ilimitados, possuem uma quota de uso no Plano Spark(Grátis).
O Firebase Cloud Message
Anteriormente chamado de GCM, Google Cloud Message, o serviço foi incorporado ao Firebase e se torna o principal serviço de envio de Notificações Push do Google.
A novidade é que o FCM é cross-plataforma. Funciona com Apps Android, iOS, Web, Chrome (plugins) e tem ports para linguagens como C++.
Recursos Chave
Firebase Cloud Message para Android
Neste post veremos como utilizar o Firebase Cloud Message no Android, em breve postarei para iOS também.
Configurando o Firebase Cloud Message
Primeiro adicionamos o google message services ao classpath da aplicação.
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
Depois insira a dependência do Firebase Core e Firebase Cloud Message no arquivo de build da Aplicação (app/build.gradle).
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
//Firebase Core
compile 'com.google.firebase:firebase-core:9.0.0'
//Firebase Cloud Message
compile 'com.google.firebase:firebase-messaging:9.0.0'
}
// Adicione no final do Arquivo (última linha se possível)
apply plugin: 'com.google.gms.google-services'
Criamos um service para o Firebase no nosso Arquivo de Manifest
Manifest.xml
O Serviço MyFirebaseMessagingService trata o recebimento de mensagens vindas do Firebase Cloud Message, já o Serviço MyFirebaseInstanceIDService, trata eventos de registro e obtenção de ID do Google Play, que podemos guarda para futuras referências.
Recebendo Uma mensagem do Firebase Cloud Message
Podemos receber mensagens em duas situações diferentes: Aplicativo em Primeiro Plano e Aplicativo em Background ( ou fechado )Estado da AplicaçãoNotificaçãoDadosNotificação + DadosEm primeiro plano onMessageReceived BackgroundCentral de Notificações do AndroidonMessageReceivedNotificação: Central de Notificações do Android
Data: obtemos como parâmetros extras da nossa Intent que irá tratar o evento.
Mensagens em Primeiro Plano
Vamos primeiro tratar da Notificação com a aplicativo em primeiro plano, implementando nosso método onMessageReceived do nosso MyFirebaseMessagingService.
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(getApplicationContext())
.setContentTitle("Notificação do Firebase")
.setSound(defaultSoundUri)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentText(remoteMessage.getNotification().getBody());
NotificationManager mNotificationManager =
(NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(ID_NOTIFICACAO, mBuilder.build());
}
Aqui, basicamente recebemos o objeto RemoteMessage, nele temos a nossa Notificação através do Método getNotification(). caso queira pegar os dados extras, basta chamar getData().
Mensagens em Segundo Plano
As mensagens em Segundo plano vão para a Central de Notificações do Android. E podemos tomar algumas ações caso o usuário abra a mensagem.
Primeiro configuraremos a Intent para abrir a mensagem.
Agora devemos configura o campo click_action do objeto payload da notificação. Isso nada mais é que enviar um JSON junto com a notificação mapeando o evento click para a nossa Intent OPEN_ACTIVITY_1. Para saber mais acesse a página Notification Payloads.
Com isso nossa service irá receber a notificação quando o usuário clicar nela.
Testando
Para testar o envio de mensagens para o seu Aplicativo :
Entre no Firebase Console.
Abra a aba Notifications
Selecione New Message
Digite o texto da Mensagem e configure os Payloads
Selecione o Publico Alvo App/App Version, Device Language, ou Users in Audience.
Clique em Send Message.
Conclusão
O Serviço do Firebase Cloud Message veio para preencher essa lacuna deixada pelo Parse.com e respondeu muito bem as nossa expectativas. O tendo o Google como Parceiro, o serviço só tende a crescer e se popularizar ainda mais.
Caso tenham alguma dúvida ou sugestão, é só deixar um comentário.
Comments