获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Envoyer un message de test à une application en arrière-plan

Pour démarrer avec FCM, créez le cas d'utilisation le plus simple : envoyer un message de notification de test depuis l'éditeur de notifications à un appareil de développement lorsque l'application est en arrière-plan sur l'appareil. Cette page répertorie toutes les étapes pour y parvenir, de la configuration à la vérification. Elle peut couvrir les étapes que vous avez déjà effectuées si vous avez configuré une application client Android pour FCM.

Configurer le SDK

Cette section couvre les tâches que vous avez peut-être effectuées si vous avez déjà activé d'autres fonctionnalités Firebase pour votre application.

Avant que tu commences

  • Installez ou mettez à jour Android Studio vers sa dernière version.

  • Assurez-vous que votre projet répond à ces exigences :

    • Cibles API niveau 19 (KitKat) ou supérieur
    • Utilise Android 4.4 ou supérieur
    • Utilise Jetpack (AndroidX) , qui inclut le respect de ces exigences de version :
      • com.android.tools.build:gradle v3.2.1 ou version ultérieure
      • compileSdkVersion 28 ou ultérieure
  • Configurez un appareil physique ou utilisez un émulateur pour exécuter votre application.
    Notez que les SDK Firebase dépendant des services Google Play nécessitent l'installation des services Google Play sur l'appareil ou l'émulateur.

  • Connectez-vous à Firebase à l'aide de votre compte Google.

Si vous n'avez pas encore de projet Android et que vous souhaitez simplement essayer un produit Firebase, vous pouvez télécharger l'un de nos exemples de démarrage rapide .

Créer un projet Firebase

Avant de pouvoir ajouter Firebase à votre application Android, vous devez créer un projet Firebase pour vous connecter à votre application Android. Consultez Comprendre les projets Firebase pour en savoir plus sur les projets Firebase.

Enregistrez votre application auprès de Firebase

Pour utiliser Firebase dans votre application Android, vous devez enregistrer votre application avec votre projet Firebase. L'enregistrement de votre application est souvent appelé "ajouter" votre application à votre projet.

  1. Accédez à la console Firebase .

  2. Au centre de la page de présentation du projet, cliquez sur l'icône Android ( ) ou Ajouter une application pour lancer le workflow de configuration.

  3. Entrez le nom du package de votre application dans le champ du nom du package Android .

  4. (Facultatif) Saisissez d'autres informations sur l'application : surnom de l'application et certificat de signature de débogage SHA-1 .

  5. Cliquez sur Enregistrer l'application .

Ajouter un fichier de configuration Firebase

  1. Téléchargez puis ajoutez le fichier de configuration Firebase Android ( google-services.json ) à votre application :

    1. Cliquez sur Télécharger google-services.json pour obtenir votre fichier de configuration Firebase Android.

    2. Déplacez votre fichier de configuration dans le répertoire racine du module (au niveau de l'application) de votre application.

  2. Pour rendre les valeurs de votre fichier de configuration google-services.json accessibles aux SDK Firebase, vous avez besoin du plugin Google services Gradle ( google-services ).

    1. Dans votre fichier Gradle au niveau de la racine (au niveau du projet) ( <project>/build.gradle ), ajoutez le plug-in de services Google en tant que dépendance 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. Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle ), ajoutez le plug-in de services Google :

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

Ajouter des SDK Firebase à votre application

  1. Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle ), ajoutez la dépendance pour la bibliothèque Android Firebase Cloud Messaging. Nous vous recommandons d'utiliser Firebase Android BoM pour contrôler la gestion des versions de la bibliothèque.

    Pour une expérience optimale avec Firebase Cloud Messaging, nous vous recommandons d' activer Google Analytics dans votre projet Firebase et d'ajouter le SDK Firebase pour Google Analytics à votre application.

    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'
    }
    

    En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.

    (Alternative) Ajouter des dépendances à la bibliothèque Firebase sans utiliser le BoM

    Si vous choisissez de ne pas utiliser la nomenclature Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.

    Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.

    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'
    }
    

    En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.

    (Alternative) Ajouter des dépendances à la bibliothèque Firebase sans utiliser le BoM

    Si vous choisissez de ne pas utiliser la nomenclature Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.

    Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons vivement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.

    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. Synchronisez votre projet Android avec les fichiers Gradle.

Accéder au jeton d'enregistrement

Pour envoyer un message à un appareil spécifique, vous devez connaître le jeton d'enregistrement de cet appareil. Étant donné que vous devrez saisir le jeton dans un champ de la console Notifications pour terminer ce didacticiel, assurez-vous de copier le jeton ou de le stocker en toute sécurité après l'avoir récupéré.

Lors du démarrage initial de votre application, le SDK FCM génère un jeton d'enregistrement pour l'instance de l'application cliente. Si vous souhaitez cibler des appareils uniques ou créer des groupes d'appareils, vous devrez accéder à ce jeton en étendant FirebaseMessagingService et onNewToken .

Cette section décrit comment récupérer le jeton et comment surveiller les modifications apportées au jeton. Étant donné que le jeton peut subir une rotation après le démarrage initial, il est fortement recommandé de récupérer le dernier jeton d'enregistrement mis à jour.

Le jeton d'enregistrement peut changer lorsque :

  • L'application est restaurée sur un nouvel appareil
  • L'utilisateur désinstalle/réinstalle l'application
  • L'utilisateur efface les données de l'application.

Récupérer le jeton d'enregistrement actuel

Lorsque vous devez récupérer le jeton actuel, appelez 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()
})

Surveiller la génération de jetons

Le rappel onNewToken se déclenche chaque fois qu'un nouveau jeton est généré.

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)
}

Une fois que vous avez obtenu le jeton, vous pouvez l'envoyer à votre serveur d'applications et le stocker en utilisant votre méthode préférée.

Envoyer un message de notification de test

  1. Installez et exécutez l'application sur l'appareil cible. Sur les appareils Apple, vous devrez accepter la demande d'autorisation pour recevoir des notifications à distance.

  2. Assurez-vous que l'application est en arrière-plan sur l'appareil.

  3. Dans la console Firebase, ouvrez la page Messagerie .

  4. S'il s'agit de votre premier message, sélectionnez Créer votre première campagne .

    1. Sélectionnez Messages de notification Firebase et sélectionnez Créer .
  5. Sinon, dans l'onglet Campagnes , sélectionnez Nouvelle campagne puis Notifications .

  6. Entrez le texte du message. Tous les autres champs sont facultatifs.

  7. Sélectionnez Envoyer un message de test dans le volet de droite.

  8. Dans le champ intitulé Ajouter un jeton d'enregistrement FCM , saisissez le jeton d'enregistrement que vous avez obtenu dans une section précédente de ce guide.

  9. Sélectionnez Tester .

Après avoir sélectionné Test , l'appareil client ciblé (avec l'application en arrière-plan) doit recevoir la notification.

Pour obtenir des informations sur la livraison des messages à votre application, consultez le tableau de bord des rapports FCM , qui enregistre le nombre de messages envoyés et ouverts sur les appareils Apple et Android, ainsi que les données relatives aux "impressions" (notifications vues par les utilisateurs) pour les applications Android.

Prochaines étapes

Envoyer des messages aux applications au premier plan

Une fois que vous avez réussi à envoyer des messages de notification alors que votre application est en arrière-plan, consultez Recevoir des messages dans une application Android pour commencer à envoyer des messages aux applications au premier plan.

Allez au-delà des messages de notification

Pour aller au-delà des messages de notification et ajouter d'autres comportements plus avancés à votre application, consultez :