Pour démarrer avec FCM, créez le cas d'utilisation le plus simple: envoyer un message de notification de test du compositeur 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:
- Cible le niveau d'API 16 (Jelly Bean) ou supérieur
- Utilise Gradle 4.1 ou version ultérieure
- Utilise Jetpack (AndroidX) , qui comprend la satisfaction de ces exigences de version:
-
com.android.tools.build:gradle
v3.2.1 ou version ultérieure -
compileSdkVersion
28 ou version ultérieure
-
Configurez un appareil physique ou utilisez un émulateur pour exécuter votre application.
Notez que les SDK Firebase avec une dépendance aux services Google Play nécessitent que l'appareil ou l'émulateur ait installé les services Google Play.Connectez-vous à Firebase à l' aide de votre compte Google.
Si vous ne possédez 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 avec Firebase
Pour utiliser Firebase dans votre application Android, vous devez enregistrer votre application auprès de votre projet Firebase. L'enregistrement de votre application s'appelle souvent "l'ajout" de votre application à votre projet.
Accédez à la console Firebase .
Au centre de la page de
du projet, cliquez sur l'icône Android ( ) ou Ajouter une application pour lancer le workflow de configuration.Saisissez le nom du package de votre application dans le champ Nom du package Android .
Un nom de package identifie de manière unique votre application sur l'appareil et dans le Google Play Store.
Un nom de package est souvent appelé ID d'application .
Recherchez le nom du package de votre application dans le fichier Gradle de votre module (au niveau de l'application), généralement
app/build.gradle
(exemple de nom de package:com.yourcompany.yourproject
).Sachez que la valeur du nom du package est sensible à la casse et qu'elle ne peut pas être modifiée pour cette application Firebase Android après son enregistrement auprès de votre projet Firebase.
(Facultatif) Entrez d'autres informations sur l'application: surnom de l'application et certificat de signature de débogage SHA-1 .
Pseudo de l'application : identifiant interne pratique qui n'est visible que par vous dans la console Firebase
Certificat de signature de débogage SHA-1 : un hachage SHA-1 est requis par l'authentification Firebase (lors de l'utilisation de la connexion Google ou de la connexion par numéro de téléphone ) et des liens dynamiques Firebase .
Cliquez sur Enregistrer l'application .
Ajouter un fichier de configuration Firebase
Ajoutez le fichier de configuration Firebase Android à votre application:
Cliquez sur Télécharger google-services.json pour obtenir votre fichier de configuration Firebase Android (
).google-services.json Déplacez votre fichier de configuration dans le répertoire module (au niveau de l'application) de votre application.
Le fichier de configuration Firebase contient des identifiants uniques mais non secrets pour votre projet. Pour en savoir plus sur ce fichier de configuration, consultez la page Comprendre les projets Firebase .
Vous pouvez télécharger à nouveau votre fichier de configuration Firebase à tout moment.
Assurez-vous que le nom du fichier de configuration n'est pas ajouté avec des caractères supplémentaires, comme
(2)
.
Pour activer les produits Firebase dans votre application, ajoutez le plug-in google-services à vos fichiers Gradle.
Dans votre fichier Gradle au niveau racine (au niveau du projet) (
build.gradle
), ajoutez des règles pour inclure le plug-in Google Services 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.5' // Google Services plugin } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Dans le fichier Gradle de votre module (au niveau de l'application) (généralement
app/build.gradle
), appliquez le plug-in Google Services Gradle:apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Ajoutez des SDK Firebase à votre application
À l'aide de Firebase Android BoM , déclarez la dépendance de la bibliothèque Firebase Cloud Messaging Android dans le fichier Gradle de votre module (au niveau de l'application) (généralement
app/build.gradle
).Pour une expérience optimale avec Firebase Cloud Messaging, nous vous recommandons d' activer Google Analytics dans votre projet. De plus, dans le cadre de la configuration d'Analytics, vous devez 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:26.6.0') // 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 Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Déclarez les dépendances de la bibliothèque Firebase sans utiliser BoM
Si vous choisissez de ne pas utiliser Firebase BoM, 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 BoM pour gérer les versions de 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:21.0.1' implementation 'com.google.firebase:firebase-analytics:18.0.2' }
Kotlin + KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:26.6.0') // 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 Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Déclarez les dépendances de la bibliothèque Firebase sans utiliser BoM
Si vous choisissez de ne pas utiliser Firebase BoM, 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 BoM pour gérer les versions de 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:21.0.1' implementation 'com.google.firebase:firebase-analytics-ktx:18.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 entrer 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'inscription pour l'instance d'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 en 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 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
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(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 à l'aide de votre méthode préférée.
Envoyer un message de notification de test
Installez et exécutez l'application sur l'appareil cible.
Assurez-vous que l'application est en arrière-plan sur l'appareil.
Ouvrez l' éditeur de notifications et sélectionnez Nouvelle notification .
Saisissez le texte du message.
Sélectionnez Envoyer un message de test .
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.
Cliquez sur Test
Une fois que vous avez cliqué sur Test , le périphérique client ciblé (avec l'application en arrière-plan) doit recevoir la notification dans la barre des notifications système.
Pour obtenir un aperçu de la livraison des messages à votre application, consultez le tableau de bord de création de rapports FCM , qui enregistre le nombre de messages envoyés et ouverts sur les appareils iOS et Android, ainsi que les données relatives aux «impressions» (notifications vues par les utilisateurs) pour les applications Android.
Prochaines étapes
Envoyer des messages à des 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 vers des 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: