1. Introduction
Objectifs
Dans cet atelier de programmation, vous allez apprendre à instrumenter votre application multiplate-forme afin de diffuser des messages push vers différents sous-groupes de vos instances d'application à l'aide de sujets FCM.
Une fois l'opération terminée, vous pourrez utiliser l'infrastructure FCM pour gérer ces sous-groupes, ainsi que les messages push multicast sur ces sous-groupes.
Présentation des sujets
Les sujets sont un moyen compatible avec l'infrastructure FCM de toucher des sous-groupes de vos instances d'application avec des messages.
FCM fournit les API permettant d'envoyer des messages et de gérer des abonnements à ces sujets. L'association et la dissociation d'une instance d'application à un sujet sont appelées abonnement et désabonnement, respectivement.
Les thèmes doivent être utilisés pour les contenus accessibles au public. Par exemple, les messages sur les bulletins météo. Si vous souhaitez envoyer des messages sensibles à l'utilisateur, utilisez le SDK Firebase Admin pour multicaster des messages sur plusieurs appareils.
La multidiffusion basée sur les sujets est optimisée pour le débit.
Points abordés
- Abonner (et désabonner) des utilisateurs à des sujets à partir d'une application mobile
- Envoyer des messages push multicast à l'aide de sujets
- Envoyer des messages à une combinaison de sujets à l'aide de conditions de sujet
- Gérer les abonnements aux sujets côté serveur, et effectuer des abonnements et des désabonnements groupés
Objectifs de l'atelier
- Application Android qui s'abonne/se désabonne aux sujets et reçoit les messages envoyés aux sujets.
- Une intégration côté serveur à l'aide du SDK Admin Firebase, qui sera utilisé pour envoyer des messages de discussion via les API FCM.
Prérequis
- Un navigateur de votre choix, tel que Chrome
- IDE IntelliJ IDEA pour le développement d'applications Java.
- Veillez à activer la prise en charge de Gradle lors de l'installation.
- IDE Android Studio pour développer des applications Android
- Un appareil pour exécuter l'application Android. Soit:
- Android Emulator. (doit être configuré dans Android Studio)
- Un appareil Android physique connecté à votre ordinateur et réglé en mode développeur
- Un compte Google pour créer et gérer votre projet Firebase.
2. Configuration
Obtenir le code
Clonez le dépôt GitHub à partir de la ligne de commande :
git clone https://github.com/firebase/quickstart-android.git fcm-codelab
L'exemple de code sera cloné dans le répertoire fcm-codelab
.
cd fcm-codelab
L'application de démarrage de cet atelier de programmation se trouve dans le répertoire messaging
de la branche fcm-topics-codelab
. Pour accéder au code de démarrage, procédez comme suit : Il contient deux répertoires : StockNewsApp
et StockNewsServer
. Le premier contient l'application Android de démarrage, et le second le code côté serveur de démarrage.
git checkout fcm-topics-codelab cd messaging/fcm-topics-codelab/starter
La version finalisée de cet atelier de programmation est placée dans le répertoire messaging/fcm-topics-codelab/completed
.
Créer un projet Firebase
- Dans la console Firebase, cliquez sur Ajouter un projet, nommez le projet Firebase StockNews, puis cliquez sur "Continuer". Remarque: Mémorisez l'ID de votre projet Firebase (ou cliquez sur l'icône Modifier pour définir l'ID de votre projet).
- Vous pouvez ignorer l'activation de Google Analytics. Pour les besoins de cet atelier de programmation, vous n'en avez pas besoin. Cliquez sur Continuer.
- Cliquez sur Create Project (Créer un projet).
Félicitations ! Vous venez de créer votre projet Firebase. Vous pouvez maintenant cliquer sur le nom du projet pour accéder à la console.
3. Configuration de l'application Firebase spécifique à la plate-forme
La plupart des modifications de code requises pour activer la compatibilité Firebase sont déjà vérifiées dans le projet sur lequel vous travaillez. Toutefois, pour que les plates-formes mobiles soient prises en charge, vous devez:
- Enregistrer la plate-forme souhaitée dans le projet Firebase
- Téléchargez le fichier de configuration spécifique à la plate-forme et ajoutez-le au code.
Pour les besoins de cet atelier de programmation, nous allons ajouter une application Firebase pour Android.
Configurer Android
- Dans la console Firebase, sélectionnez Project Settings (Paramètres du projet) en haut de la barre de navigation de gauche dans l'icône en forme de roue dentée des paramètres, puis cliquez sur l'icône Android sous Your apps (Vos applications) sur la page General (Général).
La boîte de dialogue suivante doit s'afficher :
- La valeur importante à indiquer est le nom du package Android. Définissez-la sur
com.ticker.stocknews
.- Le nom de package indiqué ici doit être identique à celui indiqué dans le
AndroidManifest.xml
de votre code de démarrage StockNewsApp. Si vous souhaitez la localiser ou la modifier, procédez comme suit:- Dans le répertoire StockNewsApp, ouvrez le fichier
app/src/main/AndroidManifest.xml
. - Dans l'élément
manifest
, recherchez la valeur de chaîne de l'attributpackage
. Cette valeur correspond au nom du package Android.
- Dans le répertoire StockNewsApp, ouvrez le fichier
- Le nom de package indiqué ici doit être identique à celui indiqué dans le
- Dans la boîte de dialogue Firebase, collez le nom du package copié dans le champ Nom du package Android.
- Vous n'avez pas besoin du certificat de signature de débogage SHA-1 pour cet atelier de programmation, car cette application ne sera pas publiée. Laissez ce champ vide.
- Cliquez sur Register App (Enregistrer l'application).
- Dans la console Firebase, suivez les instructions pour télécharger le fichier de configuration
google-services.json
. - Vous pouvez ignorer les étapes de configuration restantes, car tout le reste est déjà configuré dans le code de l'application de démarrage. Votre application apparaît sur la page principale de la console Firebase.
- Copiez le fichier
google-services.json
(que vous venez de télécharger) dans le répertoiremessaging/fcm-topics-codelab/starter/StockNewsApp/app
.
4. Créer et exécuter votre application
Vous êtes prêt à travailler sur votre application. Commencez par créer et exécuter l'application.
Importer l'application de démarrage
Lancez Android Studio et importez messaging/fcm-topics-codelab/starter/StockNewsApp
à partir du répertoire du code de démarrage.
Une fois le projet chargé, une alerte peut également s'afficher, indiquant que Git ne suit pas toutes vos modifications locales. Vous pouvez cliquer sur Ignorer. ou "X" en haut à droite. (Vous ne transmettrez pas vos modifications au dépôt Git.)
Dans l'angle supérieur gauche de la fenêtre du projet, un message semblable à l'image ci-dessous devrait s'afficher si vous êtes dans la vue Android. (Si vous êtes dans la vue Project (Projet), vous devez développer le projet pour afficher la même chose.)
Notez que, la première fois, Android Studio peut mettre plusieurs secondes pour compiler le projet en arrière-plan. Pendant ce temps, une icône de chargement s'affiche dans la barre d'état en bas d'Android Studio:
Nous vous recommandons d'attendre la fin de cette opération avant de modifier le code. Android Studio pourra ainsi récupérer tous les composants nécessaires.
Si une invite "Reload for language changes to take effect?" (Charger à nouveau pour appliquer les modifications de langue) ou similaire apparaît sélectionnez "Yes" (Oui).
Configuration de l'émulateur
Si vous avez besoin d'aide pour configurer un émulateur Android, consultez l'article Exécuter votre application.
Comprendre le code de démarrage de l'application Android
- Le code de démarrage est une application Android légère avec des fonctionnalités et une interface utilisateur minimales.
- Une dépendance au SDK firebase-messaging est déjà ajoutée au fichier
app/build.gradle
.
- Dans
AndroidManifest.xml
, un gestionnaire de rappelMESSAGING_EVENT
est déjà ajouté.- Ce gestionnaire
StockNewsMessagingService.java
étend la classeFirebaseMessagingService
qui fournit diverses fonctionnalités liées à Firebase Cloud Messaging. Pour en savoir plus, consultez la documentation FirebaseMessagingService.
- La fonction
onNewToken
est appelée lorsque le jeton d'enregistrement FCM est créé ou actualisé. Pour en savoir plus, consultez Surveiller la génération de jetons. - La fonction
onMessageReceived
est appelée lorsqu'un message est reçu et que l'application est exécutée au premier plan. Actuellement, il se contente de consigner le message reçu.- Pour en savoir plus sur les différences entre la distribution et la gestion des messages en arrière-plan et au premier plan, consultez Recevoir des messages dans une application Android.
- Ce gestionnaire
- De plus, dans
AndroidManifest.xml
, une classe AndroidApplication
nomméeStockNewsApplication
est également fournie.- Cette classe sera la première à être instanciée au démarrage de l'application.
- Dans la fonction
onCreate
de la classeStockNewsApplication
, un appel de création de jeton d'enregistrement FCM est ajouté. Il génère un jeton d'enregistrement FCM valide et le consigne dans un journal.
MainActivity.java
ajouteRecyclerView
, qui affiche les options de catégorie de stock.SubscriptionAdapter.java
implémenteRecyclerView.Adapter
, qui dessine l'écran de sélection de la catégorie de stock.- Chaque catégorie d'actions est associée à un nom et à un bouton d'activation/de désactivation d'abonnement.
- La modification du bouton doit déclencher un appel d'abonnement/de désabonnement à un sujet FCM.
- Vous allez implémenter ces appels dans les sections suivantes.
- La classe
model/StockCategories.java
contient une liste de toutes les catégories d'actions et les noms de sujets associés.
Exécuter l'application de démarrage
- Connectez votre appareil Android à votre ordinateur ou démarrez un émulateur.
- Dans la barre d'outils supérieure, sélectionnez votre appareil Android ou votre émulateur cible, puis appuyez sur le bouton d'exécution.
- L'UI de l'application se présente comme suit:
- L'application crée un jeton d'enregistrement FCM et le consigne. Toutefois, rien ne changera dans l'interface utilisateur de l'application.
- Copiez et enregistrez le jeton d'enregistrement FCM, car il sera utilisé lors des prochaines étapes.
5. Envoyer un message de test
Vous êtes maintenant prêt à envoyer un message de test à l'instance d'application que vous avez configurée lors de la dernière étape.
Importer le code du serveur de démarrage
Lancez IntelliJ IDEA et ouvrez le projet messaging/fcm-topics-codelab/starter/StockNewsServer
.
La vue du projet dans la barre de navigation de gauche devrait se présenter comme suit :
Notez que la création de votre projet par IntellIj IDEA, y compris l'extraction des dépendances requises, peut prendre quelques minutes.
Comprendre le code de démarrage du serveur
- Le code de démarrage du serveur est un projet Java basé sur Gradle.
- La dépendance au SDK firebase-admin est déjà ajoutée au fichier
build.gradle
. Ce SDK permet d'accéder à diverses fonctionnalités d'envoi de messages FCM.
- Enfin, il existe deux classes :
FcmSender.java
: cette classe contient les méthodes de note suivantes:initFirebaseSDK
: initialise le SDK firebase-admin.sendMessageToFcmRegistrationToken
: envoie un message à un jeton d'enregistrement FCM.sendMessageToFcmTopic
: envoyer un message à un sujet FCM.sendMessageToFcmTopicCondition
: envoie un message à une condition de sujet FCM.
FcmSubscriptionManager.java
: cette classe contient des méthodes permettant de gérer les abonnements à des sujets côté serveur.initFirebaseSDK
: initialise le SDK firebase-admin.subscribeFcmRegistrationTokensToTopic
: abonnez le ou les jetons d'enregistrement FCM à un sujet FCM.unsubscribeFcmRegistrationTokensFromTopic
: désabonner le ou les jetons d'enregistrement FCM d'un sujet FCM.
Configurer le code du serveur
- Nous devons d'abord configurer un compte de service Firebase qui permet au SDK firebase-admin d'autoriser les appels aux API FCM.
- Accédez à la console Firebase, cliquez sur l'icône en forme de roue dentée à côté de Vue d'ensemble du projet dans la barre de navigation de gauche, puis sélectionnez Paramètres du projet.
- Sur la page des paramètres, sélectionnez Comptes de service, puis cliquez sur Créer un compte de service.
- Cliquez maintenant sur le bouton Générer une nouvelle clé privée. Le téléchargement automatique de votre fichier de clé commencera.
- Renommez le fichier de clé
service-account.json
et copiez-le dans le dossiermessaging/fcm-topics-codelab/starter/StockNewsServer/src/main/resources
. FcmSender.java
etFcmSubscriptionManager.java
chargent le fichierservice-account.json
à partir du classpath à l'aide du code suivant.
- À ce stade, le code du serveur est prêt. Exécutez Build -> Build Project (Compilation -> Créer un projet) dans la barre de menu supérieure.
Envoyer un message de test
- Dans
FcmSender.java
, recherchez la fonctionsendMessageToFcmRegistrationToken
et insérez le jeton d'enregistrement FCM que vous avez copié à partir de la section Exécuter l'application de démarrage dans le champregistrationToken
. - Dans la fonction
main
, déscommentez uniquement la fonctionsendMessageToFcmRegistrationToken
, puis cliquez sur "Run" (Exécuter) pour exécuter le code.- Notez que le jeton d'enregistrement FCM est défini dans le champ
Token
de l'objetmessage
. - Notez également la façon dont nous avons utilisé l'API
send
de l'interfaceFirebaseMessaging
.
- Notez que le jeton d'enregistrement FCM est défini dans le champ
- Un message doit être envoyé à l'instance d'application que vous avez configurée à l'étape précédente.
- Lorsque l'instance d'application est exécutée au premier plan, le contenu du message doit s'afficher.
- Lorsque l'instance de l'application est en arrière-plan, le message s'affiche dans la barre des notifications.
Vous avez utilisé le SDK Firebase Admin pour envoyer des messages à une instance d'application. En savoir plus sur l'utilisation du SDK Admin Firebase sur votre serveur
6. Implémenter l'abonnement / désabonnement à un sujet
Au cours de cette étape, vous allez implémenter des actions d'abonnement et de désabonnement à un sujet via le bouton d'activation de la catégorie "Actions" de l'application Android.
Lorsqu'un utilisateur d'une application active ou désactive l'option d'une catégorie d'actions spécifique, un appel d'abonnement ou de désabonnement à un sujet est effectué.
Examiner le code
- Accédez à la classe
SubscriptionAdapter.java
dans le code de l'application Android, puis localisez la classeRecyclerViewViewHolder
.
- Le constructeur de la classe configure un écouteur pour le bouton d'activation/de désactivation de l'abonnement à l'aide de
setOnCheckedChangeListener
. - Selon le bouton d'activation, les actions d'abonnement et de désabonnement sont effectuées en appelant respectivement les méthodes
subscribeToStockCategory
etunsubscribeFromStockCategory
. - La méthode
setData
est appelée par leonBindViewHolder
de l'adaptateur RecyclerView pour lier le ViewHolder à la catégorie boursière appropriée.
Implémenter un abonnement à un sujet
- Dans la méthode
subscribeToStockCategory
, vous allez implémenter l'appel de l'APIsubscribeToTopic
de l'objetFirebaseMessaging
. Le code pourrait se présenter comme suit:
void subscribeToStockCategory() { // Making call to FCM for subscribing to the topic for stockCategory FirebaseMessaging.getInstance().subscribeToTopic(stockCategory.getTopicName()).addOnSuccessListener( unused -> { // Subscribing action successful Log.i(TAG, "Subscribed to topic: " + stockCategory.getTopicName()); Toast.makeText(itemView.getContext(), "Subscribed to " + stockCategory.getCategoryName(), Toast.LENGTH_SHORT).show(); }); }
Implémenter la résiliation de l'abonnement à un sujet
- De même, dans la condition "else", vous allez implémenter l'appel de l'API
unsubscribeFromTopic
. Voici un exemple :
void unsubscribeFromStockCategory() { // Making call to FCM for unsubscribing from the topic for stockCategory FirebaseMessaging.getInstance().unsubscribeFromTopic(stockCategory.getTopicName()) .addOnSuccessListener(unused -> { // Unsubscribing action successful Log.i(TAG, "Unsubscribed from topic: " + stockCategory.getTopicName()); Toast.makeText(itemView.getContext(), "Unsubscribed from " + stockCategory.getCategoryName(), Toast.LENGTH_SHORT).show(); }); }
Essayons-la
- Exécutez l'application et activez/désactivez les options de catégorie d'actions pour exécuter des actions d'abonnement et de désabonnement. Celle-ci se présente alors sous la forme suivante :
S'abonner | Se désabonner |
7. Envoi de votre premier message thématique
À cette étape, vous allez implémenter du code côté serveur pour envoyer un message de sujet FCM.
Implémenter l'intégration côté serveur pour envoyer des messages de sujet
- Dans le code du serveur, accédez à
FcmSender.java
et localisez la méthode nomméesendMessageToFcmTopic
.
- Dans la première ligne, indiquez le sujet FCM auquel vous souhaitez envoyer le message.
- Il s'agit d'une chaîne au format
/topics/<Topic Name>
. Exemple :/topics/Technology
- Il s'agit d'une chaîne au format
- Dans les lignes suivantes, créez un objet
message
(semblable à celui défini dans la fonctionsendMessageToFcmRegistrationToken
).- Au lieu de définir le champ
Token
de l'objetmessage
, vous définirez le champTopic
.
- Au lieu de définir le champ
Message message = Message.builder() .putData("FOOTECH", "$1000") .setNotification( Notification.builder() .setTitle("Investor confidence in Tech Stocks growing") .setBody("Foo Tech leading the way in stock growth for Tech sector.") .build()) .setTopic(topicName) .build();
- Ajoutez maintenant l'appel à l'instance
FirebaseMessaging
pour envoyer le message (identique à l'appel d'envoi effectué dans la fonctionsendMessageToFcmRegistrationToken
).
FirebaseMessaging.getInstance().send(message);
- Enfin, mettez à jour la fonction
main
et activez l'appel uniquement vers la fonctionsendMessageToFcmTopic
.
Envoyer un message et valider la réception
- Avant d'envoyer le message du sujet, assurez-vous que votre instance d'application est abonnée au sujet auquel vous souhaitez envoyer le message.
- Pour ce faire, il vous suffit d'appuyer sur le bouton correspondant. Exemple :
- Vous pouvez maintenant envoyer votre message de sujet en exécutant la fonction
main
deFcmSender.java
. - Comme précédemment, vous devriez pouvoir observer la confirmation de réception du message sur l'instance de l'application.
- Instance d'application au premier plan
- Instance d'application en arrière-plan
- Bonus : Essayez de vous désabonner du sujet auquel vous avez envoyé le message, puis renvoyez-le. Vous constaterez que le message n'est pas distribué à l'instance d'application.
8. Envoyer votre premier message de condition de sujet
La fonctionnalité de condition de thème vous permet d'envoyer des messages à une combinaison de thèmes, ce qui vous permet de définir une audience plus expressive.
Par exemple, dans notre application StockNews, envisagez d'envoyer des messages à un groupe d'instances d'application abonnées aux sujets Technologies ou Automotive. Cela peut se produire, par exemple, en cas d'événement notable impliquant Waymo.
Topics vous permet d'exprimer votre combinaison sous la forme d'une expression booléenne à l'aide des opérateurs suivants :
- && : Opérateur logique AND. Par exemple,
'Technology' in topics && 'Automotive' in topics
: ne cible que les instances d'application abonnées aux thèmes "Technologie" et "Automobile". - || : OU logique. Par exemple,
'Technology' in topics || 'Automotive' in topics
: cible les instances d'application abonnées aux thèmes "Technologie" ou "Automobile". - () : parenthèses pour le regroupement. Par exemple,
'Technology' in topics && ('Automotive' in topics || 'Energy' in topics)
: ne cible que les instances d'application abonnées aux thèmes "Technologie", et "Automobile" ou "Énergie".
Découvrez comment créer des requêtes d'envoi pour utiliser cette fonctionnalité.
Implémenter l'intégration côté serveur pour envoyer un message de condition du sujet
- De retour dans le code du serveur, accédez à
FcmSender.java
et recherchez la méthode nomméesendMessageToFcmTopicCondition
.
- Sur la première ligne, pour la variable
topicCondition
, indiquez la condition de sujet à laquelle vous souhaitez envoyer le message. Vous pouvez la définir sur'Technology' in topics && 'Automotive' in topics
. - Dans les lignes suivantes, créez un objet
message
(semblable à celui défini dans la fonctionsendMessageToFcmTopic
).- La différence consistera à définir le champ
Condition
au lieu de définir le champTopic
de l'objet.
- La différence consistera à définir le champ
Message message = Message.builder() .putData("FOOCAR", "$500") .setNotification( Notification.builder() .setTitle("Foo Car shows strong Q2 results") .setBody("Foo Car crosses 1B miles. Stocks rally.") .build()) .setCondition(topicCondition) .build();
- Ajoutez maintenant l'appel à l'instance
FirebaseMessaging
pour envoyer le message (identique à l'appel d'envoi effectué dans la fonctionsendMessageToFcmTopic
).
FirebaseMessaging.getInstance().send(message);
- Enfin, mettez à jour la fonction
main
et activez l'appel uniquement vers la fonctionsendMessageToFcmTopicCondition
.
Envoyer le message et valider la réception
- Avant d'envoyer le message de sujet, assurez-vous que votre instance d'application remplit la condition de sujet spécifiée en l'abonnant aux sujets "Technologie" et "Automotive".
- Vous pouvez désormais envoyer votre message de sujet en exécutant la fonction
main
deFcmSender.java
. - Comme précédemment, vous devriez pouvoir observer la confirmation de réception du message sur l'instance de l'application.
- Instance d'application au premier plan
- Instance d'application en arrière-plan
- Bonus: vous pouvez à présent vous désabonner du sujet "Technologie" et renvoyer le message contenant la condition du sujet. Vous devriez constater que le message n'est pas reçu par l'instance de l'application.
9. Récapitulatif
Récapitulons rapidement ce que vous avez appris jusqu'à présent.
- Lancer un abonnement ou un désabonnement à un sujet à partir d'une instance d'application
- Envoi d'un message au sujet et vérification de la réception sur les instances d'applications auxquelles vous êtes abonné
- Envoyer un message à une condition de sujet et vérifier la réception sur une instance d'application qui répond à la condition.
Dans la section suivante, vous allez découvrir comment abonner/désabonner des instances d'application à des sujets sans avoir à instancier des appels côté client.
10. Gérer les abonnements aux sujets côté serveur
Jusqu'à présent, dans cet atelier de programmation, tous les appels d'abonnement et de désabonnement aux sujets sont lancés à partir d'une instance d'application.
Toutefois, dans certains cas d'utilisation, vous souhaiterez peut-être gérer les abonnements à des sujets côté serveur. Par exemple, vous pouvez abonner un sous-groupe de votre base d'utilisateurs existante à un nouveau sujet sans attendre le déploiement d'une application.
Dans cette section, vous allez apprendre à utiliser le SDK Admin Firebase pour abonner et désabonner un lot de jetons d'enregistrement FCM à un thème en effectuant des appels côté serveur.
Implémenter un abonnement côté serveur de jetons d'enregistrement FCM dans le sujet FCM
- Dans le code du serveur, accédez à la classe
FcmSubscriptionManager.java
. Recherchez la méthode nomméesubscribeFcmRegistrationTokensToTopic
. Vous allez implémenter l'appel de l'APIsubscribeToTopic
ici.
- Abonnez l'instance de l'application au sujet "Energy". Pour ce faire, vous devez d'abord fournir des données pour les deux champs suivants:
registrationTokens
: liste de chaînes séparées par une virgule représentant les jetons d'enregistrement FCM pour lesquels vous souhaitez créer des abonnements à des sujets.topicName
: nom du thème "Énergie", par exemple/topics/Energy
.
- Dans les lignes suivantes, implémentez l'appel comme suit:
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic( registrationTokens, topicName);
- Vous pouvez inspecter
TopicManagementResponse
pour obtenir des statistiques générales sur les résultats. Par exemple, imprimer le nombre d'abonnements aux sujets créés à l'aide degetSuccessCount
.
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
- Enfin, dans la fonction
main
, n'autorisez que les appels à la fonctionsubscribeFcmRegistrationTokensToTopic
.
Créer un abonnement et envoyer un message de discussion
- À ce stade, vous êtes prêt à créer l'abonnement au sujet et à lui envoyer un message.
- Exécutez la fonction
main
de la classeFcmSubscriptionManager.java
. Un abonnement au sujet est créé. - À présent, configurez le code pour envoyer le message. Comme précédemment,
- Dans
FcmSender.java
, localisez la fonctionsendMessageToFcmTopic
. - Définissez
topicName
sur le thème "Énergie",/topics/Energy
. - Créez un objet
Message
et ciblez-le sur le sujet à l'aide desetTopic
. - Enfin, mettez à jour la méthode
main
pour n'activer que la fonctionsendMessageToFcmTopic
.
- Dans
- Exécutez la fonction
main
deFcmSender.java
. Le message est alors envoyé à l'instance de votre application, et vous pouvez l'observer dans votre application comme suit.- Instance d'application au premier plan
- Instance d'application en arrière-plan
Implémenter le désabonnement des jetons d'enregistrement FCM côté serveur dans le sujet FCM
- Pour les désabonnements à un sujet côté serveur, utilisez cette API
unsubscribeFromTopic
. Vous allez ajouter le code approprié à la fonctionunsubscribeFcmRegistrationTokensFromTopic
de la classeFcmSubscriptionManager.java
.
- L'implémentation du code de désabonnement côté serveur et la validation de son effet en envoyant un message de sujet sont un exercice pour vous.
11. Félicitations
Félicitations, vous avez réussi à utiliser des sujets FCM pour envoyer des messages multicast à des sous-groupes d'instances de votre application. Vous pourrez ainsi toucher plus facilement vos utilisateurs avec des contenus pertinents.
Étape suivante
Maintenant que vous avez terminé votre atelier de programmation, envisagez de tester des sujets pour d'autres plates-formes à l'aide des guides suivants: