Enviar notificações push do Android com o Firebase Cloud Messaging

Autor: Louise Ward
Data De Criação: 4 Fevereiro 2021
Data De Atualização: 28 Junho 2024
Anonim
Enviar notificações push do Android com o Firebase Cloud Messaging - Aplicativos
Enviar notificações push do Android com o Firebase Cloud Messaging - Aplicativos

Contente


Embora esteja além do escopo deste tutorial, você também pode usar o FCM para notificações upstream, onde o FCM recebe um do aplicativo cliente ou para notificá-lo quando houver novos dados disponíveis para download. Dessa forma, você pode garantir que a comunicação entre o servidor de aplicativos e o aplicativo cliente ocorra somente quando necessário, o que é muito mais eficiente do que o aplicativo cliente que entra em contato com o servidor em intervalos regulares, caso haja a possibilidade de novos dados disponíveis.

Como o FCM faz parte do Firebase, ele também funciona bem com outros serviços do Firebase. Depois de dominar o essencial do FCM, convém usar o Teste A / B para identificar quais notificações são as mais eficazes ou usar o Firebase Predictions para aplicar um poderoso aprendizado de máquina a todos os dados analíticos gerados em suas várias campanhas do FCM.


O FCM suporta dois tipos de s:

  • Notificação s. O aplicativo cliente se comportará de maneira diferente, dependendo se está em segundo plano ou em primeiro plano quando recebe o FCM. Se o seu aplicativo estiver em segundo plano, o Firebase SDK processará automaticamente e o exibirá como uma notificação na bandeja do sistema do dispositivo. Como o sistema Android cria a notificação para você, essa é uma das maneiras mais fáceis de enviar notificações por push aos seus usuários. Se seu aplicativo receber um FCM enquanto estiver em primeiro plano, o sistema não vai lida com essa notificação automaticamente, permitindo que você processe o retorno de chamada onReceived () do seu aplicativo. Exploraremos onReceived () mais adiante neste tutorial, mas, por enquanto, lembre-se de que, se o seu aplicativo receber um tempo em primeiro plano, por padrão, isso não será exibido ao usuário.
  • Dados s. Ao contrário das notificações, você pode usar os dados para enviar elementos de dados personalizados para o aplicativo cliente. No entanto, o FCM impõe um limite de 4KB nesses dados, portanto, se sua carga útil exceder 4KB, será necessário buscar os dados adicionais usando o WorkManager ou a API JobScheduler.

Neste tutorial, focaremos nas notificações.


E o Google Cloud Messaging?

Se você estiver usando as APIs de servidor e cliente do Google Cloud Messaging (GCM), existem más notícias: esse serviço já foi descontinuado e o Google planeja desativar a "maioria" dos serviços de GCM em abril de 2019. Se você ainda usando o GCM, você deve começar a migrar seus projetos para o FCM agora e deve ter concluído sua migração até abril de 2019.

Adicionando Firebase ao seu projeto Android

Vamos ver como é fácil adicionar suporte básico ao FCM ao seu aplicativo e usá-lo para enviar notificações por push aos seus usuários.

Como o FCM é um serviço Firebase, você precisará adicionar o Firebase ao seu aplicativo:

  • Vá para o console do Firebase.
  • Selecione "Adicionar projeto" e dê um nome ao seu projeto.
  • Leia os termos e condições. Se você quiser continuar, selecione "Eu aceito ..." e depois "Criar projeto".
  • Selecione "Adicionar Firebase ao seu aplicativo Android".
  • Digite o nome do pacote do seu projeto e clique em "Registrar aplicativo".
  • Selecione "Baixar google-services.json".
  • No Android Studio, arraste e solte o arquivo google-services.json no diretório "app" do seu projeto.
  • Abra o arquivo build.gradle no nível do projeto e adicione o seguinte:

caminho de classe com.google.gms: google-services: 4.0.1

  • Abra o arquivo build.gradle no nível do aplicativo e adicione o plug-in de serviços do Google, além das dependências do Firebase Core e FCM:

// Adicione o plug-in de serviços do Google // aplique o plug-in: com.google.gms.google-services……… dependências {implementação fileTree (dir: libs, include:) // Adicione o Firebase Core // implementação com.google.firebase: firebase-core: 16.0.1 // Adicionar FCM // implementação com.google.firebase: firebase-messaging: 17.3.4

  • Quando solicitado, sincronize suas alterações.
  • Em seguida, é necessário informar ao Firebase Console que você adicionou o Firebase com sucesso ao seu projeto. Instale seu aplicativo em um smartphone ou tablet Android físico ou em um dispositivo virtual Android (AVD).
  • De volta ao Firebase Console, selecione "Executar aplicativo para verificar a instalação".
  • Depois que o Firebase detectar seu aplicativo, você verá um "Parabéns". Selecione "Continuar para o console".

Enviando sua primeira notificação por push com o Firebase

E é isso! Agora você pode enviar uma notificação por push aos seus usuários, e essa notificação aparecerá na bandeja do sistema do dispositivo (por enquanto, vamos supor que seu aplicativo não esteja em primeiro plano quando o pedido for entregue).

Você cria notificações FCM usando o Notifications Composer, disponível no Firebase Console:

  • Verifique se o aplicativo está instalado e em execução em segundo plano e se o seu dispositivo tem uma conexão ativa com a Internet.
  • No Firebase Console, selecione "Cloud Messaging" no menu à esquerda.

  • Selecione "Envie seu primeiro".
  • Dê um título e um texto para o corpo e clique em "Avançar".

  • Abra o menu suspenso "Selecionar aplicativo" e escolha seu aplicativo na lista. Esta seção também inclui algumas opções avançadas que você pode usar para criar notificações direcionadas, com base em fatores como a versão do aplicativo, a localidade do dispositivo e a última vez que o usuário se envolveu com seu aplicativo. Não usaremos nenhuma dessas opções em nossa notificação de teste, mas se você quiser ver o que está disponível, selecione "e ..." e explore o menu suspenso subsequente.

  • Depois de terminar de editar esta seção, clique em "Avançar".
  • Supondo que você deseja enviar isso imediatamente, abra o menu suspenso "Enviar para usuários qualificados" e selecione "Agora".
  • No canto inferior direito da tela, clique em "Publicar".
  • Verifique todas as informações no pop-up subsequente e, se quiser continuar, selecione "Publicar".

Após alguns instantes, todos os dispositivos clientes que você segmentou devem receber essa notificação na bandeja do sistema.

Na maioria das vezes, as notificações do FCM são entregues imediatamente, mas, ocasionalmente, pode demorar alguns minutos para chegar, por isso não entre em pânico se a sua notificação estiver atrasada.

Definindo algumas metas: eventos de conversão de notificação

Ao criar uma notificação, você geralmente tem um objetivo em mente: levar os usuários de volta ao seu aplicativo, convencê-los a participar de uma compra no aplicativo ou simplesmente abrir sua notificação.

Você pode atribuir uma meta à sua notificação usando o Editor de Notificações e acompanhar o desempenho dessa notificação no painel de relatórios do FCM.

Para definir uma meta, clique para expandir a seção "Eventos de conversão" do Navigation Composer, abra o menu suspenso que acompanha e escolha entre os eventos de conversão disponíveis.

Sua notificação foi bem-sucedida?

Após o envio de uma notificação, você pode analisar seu desempenho no painel de relatórios do FCM, que deve ser carregado automaticamente sempre que você enviar um novo ou acessar o painel diretamente.

Mesmo se você não definiu metas de conversão explícitas, ainda é possível avaliar se os usuários estão agindo em suas notificações, comparando o número de s entregues com o número de s abertos.

Você também pode selecionar qualquer um nesta lista para ver os dados de envio, abertura e conversão como um gráfico. Se você definir metas de conversão, também é aqui que você encontrará as estatísticas relacionadas a essas metas.

E se meu aplicativo estiver em primeiro plano?

As notificações do FCM se comportam de maneira diferente, dependendo do estado do aplicativo cliente.

Por padrão, seu aplicativo não exibe nenhum FCM que ele recebe enquanto está em primeiro plano. Portanto, quando você envia um, não há garantia de que seus usuários realmente Vejo aquele .

Para agir de acordo com o que seu aplicativo recebe enquanto está no primeiro plano, será necessário estender o FirebaseMessagingService, substituir o método onReceived e recuperar o conteúdo usando getNotification ou getData, dependendo de você estar trabalhando com dados ou notificações ou ambos.

Crie uma nova classe Java denominada “MyFirebaseMessagingService” e adicione o seguinte:

classe pública MyFirebaseMessagingService estende o FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

Você também precisará criar um objeto de notificação. Essa é sua chance de personalizar sua notificação, por exemplo, escolhendo o som que deve ser reproduzido sempre que o usuário receber essa notificação ou aplicando um ícone de notificação personalizado. Você também precisará recuperar o conteúdo dos dados ou da notificação, por exemplo:

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder (this, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRIORITY_DEFAULT). setStyle (novo NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager notificationManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify (0, notificationBuilder.build ()); }}

Depois de criar seu serviço, não se esqueça de adicioná-lo ao seu manifesto:

Agora, toda vez que seu aplicativo receber um FCM enquanto estiver em primeiro plano, ele será entregue ao manipulador onReceived () e seu aplicativo executará a ação definida por você, como postar a notificação ou atualizar o conteúdo do aplicativo.

Notificações mais atraentes: segmentando seus usuários

Até o momento, enviamos a mesma notificação para toda a nossa base de usuários, mas as notificações são muito mais atraentes quando direcionadas a usuários específicos.

Você pode usar o Notification Composer para enviar notificações diferentes, para diferentes partes da sua base de usuários. Vá para o Notification Composer e crie sua notificação normalmente, mas na seção "Destino", clique em "e". Isso fornece acesso a um novo menu suspenso, contendo as seguintes opções:

  • Versão. Isso permite que você direcione ou exclua dispositivos executando versões específicas do seu aplicativo. Por exemplo, você pode enviar notificações para as pessoas que estão executando a versão gratuita, incentivando-as a atualizar para a versão Premium do seu aplicativo.
  • Língua. Você pode usar essa configuração para direcionar ou excluir os diferentes idiomas e localidades suportados pelo aplicativo, como criar notificações personalizadas para diferentes fusos horários ou idiomas.
  • Público-alvo do usuário. Isso permite segmentar ou excluir diferentes seções do seu público. Por exemplo, você pode usar essa configuração para tentar as pessoas que têm um histórico de compras no aplicativo, oferecendo-lhes um desconto ou chamando sua atenção para todos os novos e incríveis produtos que você acabou de lançar.
  • Propriedade do usuário. Se você configurou o Firebase Analytics, terá acesso a uma variedade de informações sobre seu público-alvo, por meio das propriedades do usuário. Você pode usar essas propriedades em combinação com o FCM, para enviar notificações direcionadas a seções muito específicas da sua base de usuários, como pessoas na faixa etária de 25 a 34 anos interessadas em esportes.
  • Predição. Se você configurou o Firebase Predictions, poderá segmentar usuários com base na probabilidade de eles se envolverem em um comportamento específico nos próximos 7 dias. Por exemplo, se o Previsões avisar que é provável que alguém se desmonte do seu jogo para celular, você pode usar o FCM para convidá-lo a participar de uma nova missão ou para enviar a ele uma moeda do jogo.
  • Último envolvimento do aplicativo. Se um usuário não tiver iniciado seu aplicativo há algum tempo, você poderá usar esta configuração para enviar algumas notificações, apenas para lembrá-lo sobre todo o ótimo conteúdo que seu aplicativo tem a oferecer.
  • Primeira abertura. Isso permite que você envie notificações com base na primeira vez que o usuário abriu o aplicativo, por exemplo, você pode ajudar os novos usuários a se atualizarem enviando notificações contendo dicas e conselhos úteis.

Segmentando um único dispositivo com tokens de registro

Já vimos como enviar notificações direcionadas com base em fatores como idade do usuário, interesses e a última vez que eles se envolveram com seu aplicativo, mas você pode ficar quites mais específico. Nesta seção final, mostrarei como enviar uma notificação do FCM para um solteiro dispositivo.

Quando o usuário inicia o aplicativo pela primeira vez, o FCM SDK gera um token de registro para essa instância do aplicativo cliente. Você pode usar FirebaseInstanceId.getInstance (). GetInstanceId () para capturar esse token de registro e, em seguida, enviar uma notificação para esse token específico.

Observe que, em um projeto do mundo real, você normalmente captura um token enviando-o ao servidor de aplicativos e armazenando-o usando o método preferido, mas para ajudar a manter as coisas simples, simplesmente imprimirei esse token no Logcat do Android Studio.

Aqui está minha MainActivity concluída:

importar android.support.v7.app.AppCompatActivity; importar android.os.Bundle; importar android.support.annotation.NonNull; importar android.util.Log; importar com.google.android.gms.tasks.OnCompleteListener; importar com.google.android.gms.tasks.Task; importar com.google.firebase.iid.FirebaseInstanceId; importar com.google.firebase.iid.InstanceIdResult; classe pública MainActivity estende AppCompatActivity {final estático privado String TAG = "MainActivity"; @Override void protegido onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (novo OnCompleteListener() {@Substituir o cancelamento do público onComplete (@NonNull Task task) {if (! task.isSuccessful ()) {// Para fazer // return; } // Obtém o token de identificação da instância // String token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Abra seu arquivo strings.xml e crie o recurso de string "fcm_token" que estamos referenciando em nossa MainActivity:

Token FCM:% s

Agora você pode recuperar o token exclusivo do seu dispositivo:

  • Instale seu projeto no dispositivo Android conectado ou AVD.
  • Abra o Logcat do Android Studio, selecionando a guia "Logcat" (onde o cursor está posicionado na captura de tela a seguir).

  • O token do seu dispositivo será impresso na seção "Debug" do Logcat, então abra o menu suspenso e selecione "Debug".

Dependendo da quantidade de informações no seu Logcat, pode ser difícil identificar a linha que você está procurando. Se você estiver com problemas, pesquise a palavra "token" ou tente fechar e reiniciar o aplicativo.

Depois de recuperar o token, você pode usá-lo para enviar uma notificação por push para este dispositivo específico:

  • Vá para o Firebase Console e selecione seu projeto no menu suspenso, se você ainda não o fez.
  • Escolha "Cloud Messaging" no menu à esquerda.
  • Clique no botão "Nova notificação".
  • Digite o título e o texto, normalmente, mas clique em "Testar no dispositivo".

  • Copie / cole seu token no campo "Adicionar uma instância ..." e clique no pequeno ícone "+" azul que aparece.
  • Marque a caixa de seleção que acompanha o token.

  • Clique em "Teste".

Essa notificação agora aparecerá apenas no dispositivo cliente de destino.

Empacotando

Neste artigo, mostrei como enviar notificações por push do Android, usando o Firebase Cloud Messaging, e como criar notificações direcionadas a diferentes seções da sua base de usuários.

Você usará o FCM em seus próprios projetos Android? Deixe-nos saber nos comentários abaixo!

Meu principal foco em paar uma emana com o Galaxy A30 foi a aparência do telefone - dede a forma como a borda e curvam, até a leve curvatura do deign fino (o que faz com que eja ótimo e...

A érie Galaxy A da amung foi rejuvenecida em 2019 graça à ua decião de melhorar a epecificaçõe e oferecer preço ólido. O amung Galaxy A50 é em dúvida ...

Nós Aconselhamos Você A Ver