Ir para o console

Enviar uma mensagem de teste a um app em segundo plano

Para começar a usar o FCM, crie o caso de uso mais simples: enviar uma mensagem de notificação do Editor do Notificações a um dispositivo de desenvolvimento específico quando o app estiver em segundo plano. Esta página descreve todas as etapas para fazer isso, desde a configuração até a verificação. Talvez ela aborde etapas que você já concluiu se configurou um app cliente do Android para o FCM.

Configurar o SDK

Esta seção aborda tarefas que você talvez tenha realizado se já ativou outros elementos do Firebase para seu app.

Antes de começar

  • Instale ou atualize o Android Studio para a versão mais recente.

  • Certifique-se de que seu app para Android:

    • segmente o nível 16 da API (Jelly Bean) ou versões posteriores;
    • use o Gradle 4.1 ou versões posteriores.
  • Configure um dispositivo ou emulador para executar seu aplicativo.

    • Emuladores precisam usar uma imagem de emulador no Google Play.
  • Faça login no Firebase usando sua Conta do Google.

Se você ainda não tem um projeto de aplicativo para Android, faça o download de um dos nossos exemplos de início rápido se quiser experimentar um produto do Firebase.

Criar um projeto do Firebase

Antes de adicionar o Firebase ao seu projeto de app para Android, é preciso criar um projeto do Firebase para ser conectado ao seu projeto de app para Android. Para mais informações, consulte Noções básicas sobre projetos do Firebase.

Registre seu app com o Firebase

Depois de ter um projeto do Firebase, é possível adicionar seu app para Android a ele.

Consulte Noções básicas sobre projetos do Firebase para ver práticas recomendadas e informações sobre como adicionar apps a um projeto, incluindo como lidar com diversas variantes de criação.

  1. No centro da página de visão geral do projeto do Console do Firebase, clique no ícone Android para iniciar o fluxo de trabalho de configuração.

    Se você já adicionou um aplicativo ao seu projeto do Firebase, clique em Adicionar app para exibir as opções da plataforma.

  2. Insira o ID do aplicativo no campo Nome do pacote do Android.

    • Às vezes, um ID do aplicativo é chamado de nome do pacote.

    • Esse ID do aplicativo é encontrado no arquivo Gradle do seu módulo (nível do app), geralmente app/build.gradle (exemplo de ID: com.yourcompany.yourproject).

  3. (Opcional) Insira outras informações do app conforme solicitado pelo fluxo de trabalho de configuração.

    O apelido é um identificador interno de conveniência e só é visível no Console do Firebase.

  4. Clique em Registrar aplicativo.

Adicionar um arquivo de configuração do Firebase

  1. Para adicionar o arquivo de configuração do Firebase para Android no app, siga estas etapas:

    1. Clique em Fazer o download do google-services.json para receber o arquivo de configuração do Firebase Android (google-services.json).

    2. Mova seu arquivo de configuração para o diretório (nível do app) do seu aplicativo.

  2. Para ativar os produtos do Firebase no seu app, adicione o plug-in google-services aos seus arquivos do Gradle.

    1. No nível raiz (nível do projeto) do seu arquivo Gradle (build.gradle), adicione regras para incluir o plug-in do Google Services. Verifique se você tem o repositório Maven do Google também.

      buildscript {
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
        }
      
        dependencies {
          // ...
      
          // Add the following line:
          classpath 'com.google.gms:google-services:4.2.0'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. No arquivo Gradle (geralmente app/build.gradle) do seu módulo (nível do app), adicione a seguinte linha no fim do arquivo.

      apply plugin: 'com.android.application'
      
      android {
        // ...
      }
      
      // Add the following line to the bottom of the file:
      apply plugin: 'com.google.gms.google-services'  // Google Play services Gradle plugin
      

Adicionar SDKs do Firebase ao seu app

É possível adicionar qualquer um dos produtos do Firebase compatíveis ao seu app para Android. Recomendamos começar com o SDK básico do Firebase (com.google.firebase:firebase-core), que oferece a funcionalidade do Google Analytics para Firebase.

  1. No seu arquivo Gradle do módulo (nível do app) (geralmente app/build.gradle), adicione a dependência do SDK básico do Firebase:

    dependencies {
     // ...
     implementation 'com.google.firebase:firebase-core:17.0.0'
    
     // Getting a "Could not find" error? Make sure that you've added
     // Google's Maven repository to your root-level build.gradle file
    }
    
  2. (Opcional) Adicione as dependências para as outras bibliotecas do Firebase que você pretende usar.

    Alguns SDKs do Firebase para Android oferecem uma biblioteca alternativa de extensões do Kotlin (em inglês).

  3. Sincronize seu app para garantir que todas as dependências tenham as versões necessárias.

  4. Execute seu app para enviar ao Firebase a confirmação de que você integrou o Firebase com sucesso.

    Os registros do dispositivo exibirão a verificação do Firebase de que a inicialização foi concluída. Se você executou seu app em um emulador com acesso à rede, o Console do Firebase notifica que a conexão do seu app está completa.

Acessar o token de registro

Para enviar uma mensagem a um dispositivo específico, é necessário saber o token de registro dele. Como você precisa informar o token em um campo do console do Notificações para concluir este tutorial, lembre-se de copiar ou armazenar o token em segurança depois de recuperá-lo.

Na primeira inicialização do app, o SDK do FCM gera um token de registro para a instância do app cliente. Caso queira segmentar dispositivos individuais ou criar grupos de dispositivos, você precisará acessar esse token expandindo o FirebaseMessagingService e modificando o onNewToken.

Veja nesta seção como recuperar o token e monitorar as alterações feitas nele. Como o token pode ser alternado após a primeira inicialização, recomendamos que você recupere o token de registro mais atualizado.

Esse token pode mudar quando:

  • o aplicativo exclui o código da instância;
  • o aplicativo é restaurado em um novo dispositivo;
  • o usuário desinstala/reinstala o app;
  • o usuário limpa os dados do app.

Recuperar o token de registro atual

Quando for necessário recuperar o token atual, chame o FirebaseInstanceId.getInstance().getInstanceId():

Java

FirebaseInstanceId.getInstance().getInstanceId()
        .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (!task.isSuccessful()) {
                    Log.w(TAG, "getInstanceId failed", task.getException());
                    return;
                }

                // Get new Instance ID token
                String token = task.getResult().getToken();

                // Log and toast
                String msg = getString(R.string.msg_token_fmt, token);
                Log.d(TAG, msg);
                Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

Kotlin

FirebaseInstanceId.getInstance().instanceId
        .addOnCompleteListener(OnCompleteListener { task ->
            if (!task.isSuccessful) {
                Log.w(TAG, "getInstanceId failed", task.exception)
                return@OnCompleteListener
            }

            // Get new Instance ID token
            val token = task.result?.token

            // Log and toast
            val msg = getString(R.string.msg_token_fmt, token)
            Log.d(TAG, msg)
            Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
        })

Monitorar a geração de tokens

O callback onNewToken é acionado sempre que um novo token é gerado.

Java

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
@Override
public void onNewToken(String token) {
    Log.d(TAG, "Refreshed token: " + token);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(token);
}

Kotlin

/**
 * Called if InstanceID token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the InstanceID token
 * is initially generated so this is where you would retrieve the token.
 */
override fun onNewToken(token: String?) {
    Log.d(TAG, "Refreshed token: $token")

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(token)
}

Quando receber o token, você poderá enviá-lo ao servidor do app e armazená-lo usando o método de sua preferência. Consulte a referência da API de Instance ID para ver os detalhes da API.

Enviar uma mensagem de notificação de teste

  1. Instale e execute o app no dispositivo de destino.

  2. Verifique se o app está em segundo plano no dispositivo.

  3. Abra o Editor do Notificações e selecione Nova mensagem.

  4. Digite o texto da mensagem.

  5. Selecione Testar no seu dispositivo.

  6. No campo Token de registro FCM, insira o token de registro obtido na seção anterior deste guia.

  7. Clique em Testar.

Depois de clicar em Testar, o dispositivo cliente de destino que tem o app em segundo plano receberá a notificação na bandeja de notificações do sistema.

Para ver insights sobre a entrega de mensagens ao seu aplicativo, consulte o painel de relatórios do FCM, que registra o número de mensagens enviadas e abertas em dispositivos iOS e Android, juntamente com os dados de "impressões" (notificações vistas pelos usuários) para apps para Android.

Próximas etapas

Enviar mensagem aos apps em primeiro plano

Depois de enviar com êxito mensagens de notificação enquanto o seu app está em segundo plano, consulte Receber mensagens em um app para Android para começar a enviar a apps em primeiro plano.

Vá além das mensagens de notificação

Para ir além das mensagens de notificação e adicionar outros comportamentos mais avançados ao seu app, consulte: