Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

Pour commencer avec la FCM, construire le cas le plus simple d'utilisation: l' envoi d' un message de notification de test du Notifications compositeur à un dispositif 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 - il peut couvrir les étapes que vous avez terminé déjà si vous avez mis en place une application client Android pour la 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

  • Installer ou mettre à jour Android Studio est à sa dernière version.

  • Assurez-vous que votre projet répond aux exigences suivantes :

    • Cible API niveau 19 (KitKat) ou supérieur
    • Utilise Android 4.4 ou supérieur
    • Utilise Jetpack (AndroidX) , qui comprend la réalisation de ces exigences de version:
      • com.android.tools.build:gradle v3.2.1 ou plus tard
      • compileSdkVersion 28 ou plus tard
  • Mettre en place un dispositif physique ou utiliser un émulateur pour exécuter votre application.
    Notez que Firebase avec une dépendance SDKs sur les services Google Play nécessitent l'appareil ou émulateur pour avoir des services Google Play installés.

  • Connectez - vous à Firebase en utilisant votre compte Google.

Si vous ne possédez pas déjà un projet Android et que vous voulez juste essayer un produit Firebase, vous pouvez télécharger un de nos échantillons 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. Visitez Comprendre Firebase projets pour en savoir plus sur les projets Firebase.

Enregistrez votre application avec 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é "ajout" de votre application à votre projet.

  1. Allez à la console Firebase .

  2. Au centre de la page d'aperçu du projet, cliquez sur l'icône Android ( ) ou Ajouter application pour lancer le flux de travail de configuration.

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

  4. (Facultatif) Entrez les autres informations de l' application: certificat pseudonyme App et signature de débogage SHA-1.

  5. Cliquez sur l' application de vous inscrire.

Ajouter un fichier de configuration Firebase

  1. Ajoutez le fichier de configuration Android Firebase à votre application :

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

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

  2. Pour activer les produits Firebase dans votre application, ajoutez les services de google-plugin pour vos fichiers Gradle.

    1. Dans votre niveau racine (niveau du projet) de fichier Gradle ( build.gradle ), ajouter des règles pour inclure le plug - in Services Google Gradle. Vérifiez que vous disposez également du référentiel Maven de Google.

      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.3.10'  // Google Services plugin
        }
      }
      
      allprojects {
        // ...
      
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // ...
        }
      }
      
    2. Dans votre module fichier (app-niveau) Gradle (généralement app/build.gradle ), appliquer le plugin Google Services de Gradle:

      apply plugin: 'com.android.application'
      // Add the following line:
      apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
      android {
        // ...
      }
      

Ajouter des SDK Firebase à votre application

  1. Utilisation de la Firebase Android BoM , déclarer la dépendance de la bibliothèque - Cloud Firebase Messaging Android dans votre module (app-niveau) de fichier Gradle (généralement app/build.gradle ).

    Pour une expérience optimale avec Firebase Nuage de messagerie, nous vous recommandons de permettre à Google Analytics dans votre projet Firebase et en ajoutant le SDK Firebase Google Analytics à votre application.

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare 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 le Firebase Android BoM , votre application utilise toujours des versions compatibles des bibliothèques Firebase Android.

    (Alternative) déclarer des dépendances de bibliothèque firebase sans utiliser la nomenclature

    Si vous choisissez de ne pas utiliser la nomenclature de 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 fortement d' utiliser la BoM pour gérer les versions bibliothèque, ce qui garantit que toutes les versions sont compatibles.

    dependencies {
        // Declare 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.0.0'
        implementation 'com.google.firebase:firebase-analytics:20.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare 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 le Firebase Android BoM , votre application utilise toujours des versions compatibles des bibliothèques Firebase Android.

    (Alternative) déclarer des dépendances de bibliothèque firebase sans utiliser la nomenclature

    Si vous choisissez de ne pas utiliser la nomenclature de 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 fortement d' utiliser la BoM pour gérer les versions bibliothèque, ce qui garantit que toutes les versions sont compatibles.

    dependencies {
        // Declare 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.0.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
    }
    

  2. Synchronisez votre application pour vous assurer que toutes les dépendances ont les versions nécessaires.

Accéder au jeton d'inscription

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é.

Au démarrage initial de votre application, le SDK FCM génère un jeton d'enregistrement pour l'instance d'application cliente. Si vous souhaitez cibler un ou plusieurs périphériques créer des groupes de périphériques, vous aurez besoin d'accéder à ce jeton en élargissant FirebaseMessagingService et en remplaçant 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 être tourné 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 avez besoin de récupérer le jeton en cours, 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

Les onNewToken feux de rappel à chaque fois est généré un nouveau jeton.

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(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.

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

  3. Ouvrez le Notifications compositeur et sélectionnez Nouvelle notification.

  4. Saisissez le texte du message.

  5. Sélectionnez un message de test Envoyer.

  6. Dans le champ Ajouter un jeton d'enregistrement de la FCM, entrez l'enregistrement jeton que vous avez obtenu dans une section précédente de ce guide.

  7. Cliquez sur test

Après avoir cliqué sur Test, le dispositif client ciblé (avec l'application en arrière - plan) doit recevoir la notification dans la barre des notifications système.

Pour un aperçu de la distribution des messages à votre application, consultez le tableau de bord des rapports FCM , qui enregistre le nombre de messages envoyés et ouvert sur les appareils Apple et Android, ainsi que des données pour « 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 envoyé avec succès des messages de notification pendant que votre application est en arrière - plan, voir recevoir des messages dans une application Android pour commencer à envoyer des applications à au premier plan.

Aller 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 :