Acompanhe tudo o que foi anunciado no Firebase Summit e saiba como usar o Firebase para acelerar o desenvolvimento de apps e executá-los com confiança. Saiba mais

Envie uma mensagem de teste para um aplicativo em segundo plano

Para começar a usar o FCM, crie o caso de uso mais simples: enviar uma mensagem de notificação de teste do compositor de notificações para um dispositivo de desenvolvimento quando o aplicativo estiver em segundo plano no dispositivo. Esta página lista todas as etapas para fazer isso, desde a configuração até a verificação — ela pode abranger as etapas que você já concluiu se tiver configurado um aplicativo cliente Android para FCM.

Configurar o SDK

Esta seção aborda as tarefas que você pode ter concluído se já tiver ativado outros recursos do Firebase para seu aplicativo.

Antes de você começar

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

  • Certifique-se de que seu projeto atenda a estes requisitos:

    • Segmenta API de nível 19 (KitKat) ou superior
    • Usa Android 4.4 ou superior
    • Usa Jetpack (AndroidX) , o que inclui atender a estes requisitos de versão:
      • com.android.tools.build:gradle v3.2.1 ou posterior
      • compileSdkVersion 28 ou posterior
  • Configure um dispositivo físico ou use um emulador para executar seu aplicativo.
    Observe que os SDKs do Firebase com dependência do Google Play Services exigem que o dispositivo ou emulador tenha o Google Play Services instalado.

  • Faça login no Firebase usando sua conta do Google.

Se você ainda não tem um projeto Android e quer apenas experimentar um produto Firebase, pode baixar um de nossos exemplos de início rápido .

Criar um projeto do Firebase

Antes de adicionar o Firebase ao seu aplicativo Android, você precisa criar um projeto do Firebase para se conectar ao seu aplicativo Android. Acesse Entenda os projetos do Firebase para saber mais sobre os projetos do Firebase.

Registre seu aplicativo com o Firebase

Para usar o Firebase em seu aplicativo Android, você precisa registrar seu aplicativo com seu projeto Firebase. Registrar seu aplicativo geralmente é chamado de "adicionar" seu aplicativo ao seu projeto.

  1. Acesse o console do Firebase .

  2. No centro da página de visão geral do projeto, clique no ícone do Android ( ) ou Adicionar aplicativo para iniciar o fluxo de trabalho de configuração.

  3. Digite o nome do pacote do seu aplicativo no campo de nome do pacote Android .

  4. (Opcional) Insira outras informações do aplicativo: Apelido do aplicativo e Certificado de assinatura de depuração SHA-1 .

  5. Clique em Registrar aplicativo .

Adicionar um arquivo de configuração do Firebase

  1. Baixe e adicione o arquivo de configuração Firebase Android ( google-services.json ) ao seu aplicativo:

    1. Clique em Baixar google-services.json para obter o arquivo de configuração do Firebase Android.

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

  2. Para tornar os valores em seu arquivo de configuração google-services.json acessíveis aos SDKs do Firebase, você precisa do plug-in Gradle de serviços do Google ( google-services ).

    1. Em seu arquivo Gradle de nível raiz (nível de projeto) ( <project>/build.gradle ), adicione o plug-in de serviços do Google como uma dependência buildscript:

      buildscript {
      
          repositories {
            // Make sure that you have the following two repositories
            google()  // Google's Maven repository
            mavenCentral()  // Maven Central repository
          }
      
          dependencies {
            ...
      
            // Add the dependency for the Google services Gradle plugin
            classpath 'com.google.gms:google-services:4.3.14'
          }
      }
      
      allprojects {
        ...
      
        repositories {
          // Make sure that you have the following two repositories
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
      }
      
    2. No arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle ), adicione o plug-in de serviços do Google:

      plugins {
          id 'com.android.application'
      
          // Add the Google services Gradle plugin
          id 'com.google.gms.google-services'
          ...
      }
      

Adicionar SDKs do Firebase ao seu aplicativo

  1. No arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle ), adicione a dependência para a biblioteca Firebase Cloud Messaging Android. Recomendamos usar o Firebase Android BoM para controlar o controle de versão da biblioteca.

    Para uma experiência ideal com o Firebase Cloud Messaging, recomendamos habilitar o Google Analytics em seu projeto Firebase e adicionar o SDK do Firebase para Google Analytics ao seu aplicativo.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.0')
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    Ao usar o Firebase Android BoM , seu aplicativo sempre usará versões compatíveis das bibliotecas do Firebase Android.

    (Alternativa) Adicionar dependências da biblioteca Firebase sem usar o BoM

    Se você optar por não usar o Firebase BoM, deverá especificar cada versão da biblioteca Firebase em sua linha de dependência.

    Observe que, se você usar várias bibliotecas do Firebase em seu aplicativo, recomendamos usar o BoM para gerenciar as versões da biblioteca, o que garante que todas as versões sejam compatíveis.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging:23.1.0'
        implementation 'com.google.firebase:firebase-analytics:21.2.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.1.0')
    
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    Ao usar o Firebase Android BoM , seu aplicativo sempre usará versões compatíveis das bibliotecas do Firebase Android.

    (Alternativa) Adicionar dependências da biblioteca Firebase sem usar o BoM

    Se você optar por não usar o Firebase BoM, deverá especificar cada versão da biblioteca Firebase em sua linha de dependência.

    Observe que, se você usar várias bibliotecas do Firebase em seu aplicativo, recomendamos usar o BoM para gerenciar as versões da biblioteca, o que garante que todas as versões sejam compatíveis.

    dependencies {
        // Add the dependencies for the Firebase Cloud Messaging and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-messaging-ktx:23.1.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0'
    }
    

  2. Sincronize seu projeto Android com arquivos Gradle.

Acesse o token de registro

Para enviar uma mensagem para um dispositivo específico, você precisa conhecer o token de registro desse dispositivo. Como você precisará inserir o token em um campo no console de Notificações para concluir este tutorial, certifique-se de copiar o token ou armazená-lo com segurança após recuperá-lo.

Na inicialização inicial de seu aplicativo, o FCM SDK gera um token de registro para a instância do aplicativo cliente. Se você deseja segmentar dispositivos únicos ou criar grupos de dispositivos, precisará acessar esse token estendendo FirebaseMessagingService e substituindo onNewToken .

Esta seção descreve como recuperar o token e como monitorar alterações no token. Como o token pode ser girado após a inicialização inicial, é altamente recomendável recuperar o token de registro atualizado mais recente.

O token de registro pode mudar quando:

  • O aplicativo é restaurado em um novo dispositivo
  • O usuário desinstala/reinstala o aplicativo
  • O usuário limpa os dados do aplicativo.

Recupere o token de registro atual

Quando precisar recuperar o token atual, chame FirebaseMessaging.getInstance().getToken() :

Java

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            Log.w(TAG, "Fetching FCM registration token failed", task.getException());
            return;
          }

          // Get new FCM registration token
          String token = task.getResult();

          // 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+KTX

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w(TAG, "Fetching FCM registration token failed", task.exception)
        return@OnCompleteListener
    }

    // Get new FCM registration token
    val token = task.result

    // 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 geração de token

O retorno de chamada onNewToken acionado sempre que um novo token é gerado.

Java

/**
 * There are two scenarios when onNewToken is called:
 * 1) When a new token is generated on initial app startup
 * 2) Whenever an existing token is changed
 * Under #2, there are three scenarios when the existing token is changed:
 * A) App is restored to a new device
 * B) User uninstalls/reinstalls the app
 * C) User clears app data
 */
@Override
public void onNewToken(@NonNull 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
    // FCM registration token to your app server.
    sendRegistrationToServer(token);
}

Kotlin+KTX

/**
 * Called if the FCM registration token is updated. This may occur if the security of
 * the previous token had been compromised. Note that this is called when the
 * FCM registration 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
    // FCM registration token to your app server.
    sendRegistrationToServer(token)
}

Depois de obter o token, você pode enviá-lo ao seu servidor de aplicativos e armazená-lo usando seu método preferido.

Enviar uma mensagem de notificação de teste

  1. Instale e execute o aplicativo no dispositivo de destino. Em dispositivos Apple, você precisará aceitar a solicitação de permissão para receber notificações remotas.

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

  3. No console do Firebase, abra a página Mensagens .

  4. Se esta for sua primeira mensagem, selecione Criar sua primeira campanha .

    1. Selecione Mensagens de notificação do Firebase e selecione Criar .
  5. Caso contrário, na guia Campanhas , selecione Nova campanha e depois Notificações .

  6. Digite o texto da mensagem. Todos os outros campos são opcionais.

  7. Selecione Enviar mensagem de teste no painel direito.

  8. No campo Adicionar um token de registro FCM , insira o token de registro obtido em uma seção anterior deste guia.

  9. Selecione Teste .

Depois de selecionar Test , o dispositivo cliente de destino (com o aplicativo em segundo plano) deve receber a notificação.

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

Próximos passos

Enviar mensagens para aplicativos em primeiro plano

Depois de enviar mensagens de notificação com sucesso enquanto seu aplicativo está em segundo plano, consulte Receber mensagens em um aplicativo Android para começar a enviar para aplicativos em primeiro plano.

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

Para ir além das mensagens de notificação e adicionar outro comportamento mais avançado ao seu aplicativo, consulte: