1. Introduction
Objectifs
Dans cet atelier de programmation, vous allez apprendre à instrumenter votre application multiplate-forme afin de pouvoir multicaster des messages push vers différents sous-groupes d'instances de votre application à l'aide des thèmes FCM.
Une fois l'opération terminée, vous pourrez utiliser l'infrastructure FCM pour gérer ces sous-groupes et diffuser des messages push multicast sur ces sous-groupes.
Présentation des thèmes
Les thèmes sont une méthode compatible avec l'infrastructure FCM pour envoyer des messages à des sous-groupes d'instances de votre application.
FCM fournit les API permettant d'envoyer des messages et de gérer les abonnements à ces thèmes. L'association et la dissociation d'une instance d'application à un sujet sont respectivement appelées "s'abonner" et "se désabonner".
Les thèmes doivent être utilisés pour les contenus accessibles au public. Par exemple, les messages concernant les bulletins météo. Si vous souhaitez envoyer des messages contenant des informations sensibles sur les utilisateurs, utilisez le SDK Admin Firebase pour diffuser des messages sur plusieurs appareils.
La multidiffusion basée sur des thèmes est optimisée pour le débit.
Points abordés
- Découvrez comment abonner (et désabonner) des utilisateurs à des thèmes depuis une application mobile.
- Envoyer des messages push multicast à l'aide de thèmes
- Découvrez comment envoyer des messages à une combinaison de thèmes à l'aide de conditions de thème.
- Découvrez comment gérer les abonnements aux thèmes côté serveur, et comment s'abonner ou se désabonner à plusieurs thèmes à la fois.
Objectifs de l'atelier
- Application Android qui s'abonne à des thèmes/se désabonne de thèmes et reçoit des messages lorsqu'ils sont envoyés aux thèmes.
- Une intégration côté serveur à l'aide du SDK Admin Firebase, qui sera utilisée pour envoyer des messages thématiques via les API FCM.
Prérequis
- Un navigateur de votre choix, tel que Chrome.
- IDE IntelliJ IDEA pour développer des applications Java.
- Veillez à activer la prise en charge de Gradle lors de l'installation.
- L'IDE Android Studio pour développer des applications Android.
- Un appareil pour exécuter l'application Android. Soit :
- L'émulateur Android (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 finale de cet atelier de programmation se trouve dans le répertoire messaging/fcm-topics-codelab/completed
.
Créer un projet Firebase
- Connectez-vous à la console Firebase à l'aide de votre compte Google.
- Cliquez sur le bouton pour créer un projet, puis saisissez un nom de projet (par exemple,
StockNews
).
- Cliquez sur Continuer.
- Si vous y êtes invité, lisez et acceptez les Conditions d'utilisation de Firebase, puis cliquez sur Continuer.
- (Facultatif) Activez l'assistance IA dans la console Firebase (appelée "Gemini dans Firebase").
- Pour cet atelier de programmation, vous n'avez pas besoin de Google Analytics. Désactivez donc l'option Google Analytics.
- Cliquez sur Créer un projet, attendez que votre projet soit provisionné, puis cliquez sur Continuer.
Félicitations ! Vous venez de créer votre projet Firebase.
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à activées dans le projet sur lequel vous travaillez. Toutefois, afin d'ajouter la compatibilité avec les plates-formes mobiles, vous devez :
- Enregistrez la plate-forme souhaitée sur le projet Firebase.
- Téléchargez le fichier de configuration correspondant à la plate-forme, puis ajoutez-le au code.
Pour les besoins de cet atelier de programmation, nous allons ajouter une application Android Firebase.
Configurer Android
- Dans la console Firebase, sélectionnez Paramètres du projet en haut de la barre de navigation de gauche (icône en forme de roue dentée), puis cliquez sur l'icône Android sous Vos applications sur la page 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 fourni ici doit être identique à celui fourni dans le
AndroidManifest.xml
de votre code de démarrage StockNewsApp. Pour le trouver ou le 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 fourni ici doit être identique à celui fourni 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 sera listée 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 compiler et exécuter l'application.
Importer l'application de départ
Démarrez 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 s'afficher, indiquant que Git ne suit pas toutes les modifications locales. Vous pouvez cliquer sur Ignore (Ignorer) ou sur le X en haut à droite. (Vous ne transmettrez pas vos modifications au dépôt Git.)
En haut à gauche de la fenêtre du projet, vous devriez obtenir une image semblable à celle ci-dessous si vous êtes dans la vue Android. (Si vous êtes dans la vue Project (Projet), vous devez développer le projet pour voir 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 UI 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 de 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 au premier plan. Actuellement, il enregistre simplement le message reçu.- Pour en savoir plus sur les différences entre la distribution et le traitement 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 classeApplication
Android 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é. Un jeton d'enregistrement FCM valide sera généré et consigné.
MainActivity.java
ajouteRecyclerView
qui affiche les choix de catégorie de stock.SubscriptionAdapter.java
implémenteRecyclerView.Adapter
, qui affiche l'écran de sélection de la catégorie de stock.- Chaque catégorie de stock possède un nom et un bouton d'abonnement à côté.
- La modification du bouton bascule doit entraîner un appel d'abonnement / désabonnement à un sujet FCM.
- Vous implémenterez ces appels dans les sections à venir.
- La classe
model/StockCategories.java
contient la liste de toutes les catégories de stock et des noms de thèmes 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 ou émulateur Android cible, puis appuyez sur le bouton d'exécution.
- L'UI de l'application se présentera comme suit :
- L'application crée un jeton d'enregistrement FCM et l'enregistre. Toutefois, rien ne changera dans l'interface utilisateur de l'application.
- Copiez et enregistrez le jeton d'enregistrement FCM, car vous en aurez besoin 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 à l'étape précédente.
Importer le code de serveur de démarrage
Démarrez 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 peut prendre quelques minutes, y compris l'extraction des dépendances requises.
Comprendre le code de démarrage du serveur
- Le code de démarrage du serveur est un projet Java basé sur Gradle.
- Le fichier
build.gradle
contient déjà la dépendance sur le SDK Firebase Admin. 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 suivantes :initFirebaseSDK
: initialise le SDK Admin Firebase.sendMessageToFcmRegistrationToken
: envoie un message à un jeton d'enregistrement FCM.sendMessageToFcmTopic
: envoie un message à un sujet FCM.sendMessageToFcmTopicCondition
: envoyer un message à une condition de sujet FCM.
FcmSubscriptionManager.java
: cette classe contient des méthodes permettant de gérer les abonnements aux thèmes côté serveur.initFirebaseSDK
: initialise le SDK Admin Firebase.subscribeFcmRegistrationTokensToTopic
: abonnez un ou plusieurs jetons d'enregistrement FCM à un sujet FCM.unsubscribeFcmRegistrationTokensFromTopic
: désabonnez un ou plusieurs jetons d'enregistrement FCM d'un sujet FCM.
Configurer le code du serveur
- Tout d'abord, nous devons 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 ensuite 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 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.
- 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.
- À ce stade, le code du serveur est prêt. Exécutez Build > Build Project (Compiler > Compiler le projet) dans la barre de menu supérieure.
Envoyer un message de test
- Dans
FcmSender.java
, localisez la fonctionsendMessageToFcmRegistrationToken
et insérez le jeton d'enregistrement FCM que vous avez copié dans la section Exécuter l'application de démarrage dans le champregistrationToken
. - Dans la fonction
main
, décommentez uniquement la fonctionsendMessageToFcmRegistrationToken
, puis cliquez sur "Exécuter" pour exécuter le code.- Notez comment le jeton d'enregistrement FCM est défini dans le champ
Token
de l'objetmessage
. - Notez également que nous avons utilisé l'API
send
de l'interfaceFirebaseMessaging
.
- Notez comment 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 de l'application est au premier plan, le contenu du message doit être enregistré.
- Lorsque l'instance d'application est en arrière-plan, le message s'affiche dans la barre de notification.
Bravo ! Vous avez utilisé le SDK Admin Firebase pour envoyer des messages à une instance d'application. En savoir plus sur l'utilisation du SDK Firebase Admin sur votre serveur
6. Implémenter l'abonnement / le désabonnement à un sujet
À cette étape, vous allez implémenter les actions d'abonnement et de désabonnement aux thèmes sur le bouton bascule "Catégorie de stock" de l'application Android.
Lorsqu'un utilisateur de l'application active ou désactive une catégorie de stock spécifique, un appel d'abonnement ou de désabonnement à un thème est effectué.
Examiner le code
- Accédez à la classe
SubscriptionAdapter.java
dans le code de l'application Android et localisez la classeRecyclerViewViewHolder
.
- Le constructeur de classe configure un écouteur pour le bouton bascule d'abonnement à l'aide de
setOnCheckedChangeListener
. - Selon l'état du bouton bascule, 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 associer le ViewHolder à la catégorie de stock appropriée.
Implémenter l'abonnement à un sujet
- Dans la méthode
subscribeToStockCategory
, vous implémenterez l'appel à 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 désinscription aux thèmes
- De même, dans la condition "else", vous implémenterez l'appel à l'API
unsubscribeFromTopic
. Voici quelques exemples :
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 de stock pour exécuter les actions d'abonnement et de désabonnement. Celle-ci se présente alors sous la forme suivante :
S'abonner | Se désabonner |
7. Envoyer votre premier message dans un thème
Au cours de cette étape, vous allez implémenter le code côté serveur pour envoyer un message de sujet FCM.
Implémenter l'intégration côté serveur pour envoyer un message à un thème
- Dans le code du serveur, accédez à
FcmSender.java
et recherchez la méthode nomméesendMessageToFcmTopic
.
- Sur 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
).- La différence est que, au lieu de définir le champ
Token
de l'objetmessage
, vous définissez le champTopic
.
- La différence est que, 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 n'activez l'appel que pour la fonctionsendMessageToFcmTopic
.
Envoyer un message et valider la réception
- Avant d'envoyer le message au thème, assurez-vous d'abord que l'instance de votre application est abonnée au thème auquel vous souhaitez l'envoyer.
- Pour ce faire, il vous suffit d'activer ou de désactiver le bouton correspondant. Exemple :
- Vous pouvez maintenant envoyer le message de votre sujet en exécutant la fonction
main
deFcmSender.java
. - Comme avant, vous devriez pouvoir observer la réception du message dans 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 thème auquel vous avez envoyé le message, puis renvoyez-le. Vous constaterez que le message n'est pas remis à l'instance d'application.
8. Envoyer votre premier message de condition de sujet
La fonctionnalité de condition de sujet vous permet d'envoyer des messages à une combinaison de sujets, ce qui vous permet de définir plus précisément votre audience.
Par exemple, dans notre application StockNews, envisagez la possibilité d'envoyer des messages à un groupe d'instances d'application abonnées aux thèmes "Technologie" ou "Automobile". Cela peut se produire, par exemple, en cas d'événement notable impliquant Waymo.
Les thèmes vous permettent d'exprimer votre combinaison sous la forme d'une expression booléenne à l'aide des opérateurs suivants :
- && : AND logique. Par exemple,
'Technology' in topics && 'Automotive' in topics
ne cible que les instances d'application abonnées aux thèmes "Technologie" et "Automobile". - || : OR 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".
Pour en savoir plus sur la création de demandes d'envoi pour utiliser cette fonctionnalité, consultez la documentation.
Implémenter l'intégration côté serveur pour envoyer un message de condition de thème
- 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 le 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 est que, au lieu de définir le champ
Topic
de l'objet, vous définissez le champCondition
.
- La différence est que, au lieu de 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 n'activez l'appel que pour la fonctionsendMessageToFcmTopicCondition
.
Envoyer le message et valider la réception
- Avant d'envoyer le message de sujet, assurez-vous d'abord que l'instance de votre application satisfait à la condition de sujet spécifiée en abonnant l'instance de l'application aux sujets "Technologie" et "Automobile".
- Vous pouvez maintenant envoyer le message de votre sujet en exécutant la fonction
main
deFcmSender.java
. - Comme avant, vous devriez pouvoir observer la 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 maintenant vous désabonner du thème "Technologie" et renvoyer le message de condition du thème. Vous devriez constater que l'instance d'application ne reçoit pas le message.
9. Récapitulatif
Récapitulons rapidement ce que vous avez appris jusqu'à présent.
- Comment s'abonner à un thème ou se désabonner d'un thème à partir d'une instance d'application
- Envoyez un message au sujet et vérifiez sa réception sur les instances d'application abonnées.
- Envoyez un message à un sujet Condition et vérifiez la réception sur une instance d'application qui remplit la condition.
Dans la section suivante, vous allez apprendre à abonner / désabonner des instances d'application à des thèmes sans avoir besoin d'instancier des appels côté client.
10. Gérer les abonnements aux thèmes côté serveur
Jusqu'à présent, dans cet atelier de programmation, tous les appels d'abonnement et de désabonnement aux thèmes sont initiés à partir d'une instance d'application.
Toutefois, dans certains cas d'utilisation, vous pouvez gérer les abonnements aux thèmes côté serveur. Par exemple, vous pouvez souhaiter abonner un sous-groupe de votre base d'utilisateurs existante à un nouveau sujet sans attendre le déploiement de l'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 l'abonnement côté serveur des jetons d'enregistrement FCM au 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 à l'APIsubscribeToTopic
ici.
- Abonnons l'instance d'application au sujet "Energy". Pour ce faire, commencez par 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 thèmes.topicName
: nom du sujet "Énergie", c'est-à-dire/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, en imprimant le nombre d'abonnements aux thèmes créés à l'aide degetSuccessCount
.
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
- Enfin, dans la fonction
main
, n'autorisez les appels qu'à la fonctionsubscribeFcmRegistrationTokensToTopic
.
Créer un abonnement et envoyer un message thématique
- Vous êtes maintenant prêt à créer l'abonnement au sujet et à lui envoyer un message.
- Exécutez la fonction
main
de la classeFcmSubscriptionManager.java
. Cette action créera un abonnement à un sujet. - Maintenant, 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", c'est-à-dire/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 la désinscription côté serveur des jetons d'enregistrement FCM à un sujet FCM
- Pour les désabonnements aux thèmes 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 thématique sont laissées à votre discrétion.
11. Félicitations
Félicitations, vous avez utilisé les rubriques FCM pour envoyer des messages multicast à des sous-groupes d'instances de votre application. Vous pourrez ainsi toucher vos utilisateurs plus facilement et plus rapidement avec des contenus pertinents.
Étape suivante
Maintenant que vous avez terminé cet atelier de programmation, essayez d'autres plates-formes en consultant les guides suivants :