1. Introduction
Objectifs
Dans cet atelier de programmation, vous apprendrez à instrumenter votre application multiplateforme afin de pouvoir multidiffuser des messages push vers différents sous-groupes d'instances de votre application à l'aide de sujets FCM.
Une fois terminé, vous pourrez exploiter l'infrastructure FCM pour gérer ces sous-groupes ainsi que multidiffuser des messages push sur les sous-groupes.
Aperçu des sujets
Les sujets constituent un moyen pris en charge par l'infrastructure FCM d'atteindre des sous-groupes de vos instances d'application avec des messages.
FCM fournit les API pour envoyer des messages et gérer les abonnements à ces sujets. L'acte d'associer et de dissocier une instance d'application à un sujet est appelé respectivement abonnement et désabonnement.
Les sujets doivent être utilisés pour du contenu accessible au public. Par exemple, des messages sur les mises à jour météo. Si vous souhaitez envoyer des messages sensibles à l'utilisateur, utilisez le SDK d'administration Firebase pour diffuser des messages en multidiffusion sur plusieurs appareils .
La multidiffusion basée sur des sujets est optimisée pour le débit.
Ce que vous apprendrez
- Comment abonner (et désabonner) des utilisateurs à des sujets depuis une application mobile.
- Comment envoyer des messages push multicast à l'aide de sujets.
- Comment envoyer des messages à une combinaison de sujets à l'aide de conditions de sujet.
- Comment gérer les abonnements aux sujets côté serveur et effectuer des abonnements et désabonnements groupés.
Ce que vous construirez
- Une application Android qui s'abonne/se désabonne aux sujets et reçoit des messages lorsqu'ils sont envoyés aux sujets.
- Une intégration côté serveur utilisant le SDK Firebase Admin, qui sera utilisé pour envoyer des messages de sujet via les API FCM.
Ce dont vous aurez besoin
- Un navigateur de votre choix, tel que Chrome.
- IntelliJ IDEA IDE pour développer des applications Java.
- Assurez-vous d'activer la prise en charge de Gradle lors de l'installation.
- Android Studio IDE pour développer des applications Android.
- Un appareil pour exécuter l'application Android. Soit :
- L'émulateur Android. (Nécessite une configuration dans Android Studio ).
- Un appareil Android physique connecté à votre ordinateur et configuré en mode développeur.
- Un compte Google pour créer et gérer votre projet Firebase.
2. Mise en place
Obtenez 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
. Suivez les étapes suivantes pour atteindre le code de démarrage. Il contient deux répertoires StockNewsApp
et StockNewsServer
. Le premier contient l’application Android de démarrage et le second contient le code côté serveur de démarrage.
git checkout fcm-topics-codelab cd messaging/fcm-topics-codelab/starter
La version terminé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 et cliquez sur Continuer. Remarque : N'oubliez pas l'ID de projet de votre projet Firebase (ou cliquez sur l'icône Modifier pour définir votre ID de projet préféré).
- 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 Créer un projet .
Toutes nos félicitations! Vous venez de créer votre projet Firebase. Maintenant, vous pouvez 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 prise en charge de Firebase sont déjà enregistrées dans le projet sur lequel vous travaillez. Cependant, afin d'ajouter la prise en charge des plates-formes mobiles, vous devez :
- Enregistrez la plateforme souhaitée sur 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 Android Firebase.
Configurer Android
- Dans la console Firebase , sélectionnez Paramètres du projet en haut de la barre de navigation gauche dans l'engrenage Paramètres, puis cliquez sur l'icône Android sous Vos applications dans la page Général .
Vous devriez voir la boîte de dialogue suivante :
- La valeur importante à fournir est le nom du package Android . Définissez-le sur
com.ticker.stocknews
.- Le nom du package fourni ici doit être le même que celui fourni dans le
AndroidManifest.xml
de votre code StockNewsApp de démarrage. Si vous souhaitez le localiser 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 est le nom du package Android.
- Dans le répertoire StockNewsApp , ouvrez le fichier
- Le nom du package fourni ici doit être le même que 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 Enregistrer l'application .
- En continuant 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. Vous trouverez votre application répertorié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éez et exécutez votre application
Vous êtes prêt à commencer à travailler sur votre application ! Tout d’abord, créez et exécutez l’application.
Importer l'application de démarrage
Démarrez Android Studio et importez le messaging/fcm-topics-codelab/starter/StockNewsApp
à partir du répertoire de code de démarrage.
Une fois le projet chargé, vous pouvez également voir une alerte indiquant que Git ne suit pas toutes vos modifications locales, vous pouvez cliquer sur " Ignorer " ou sur le " X " en haut à droite. (Vous ne reporterez aucune modification au dépôt Git.)
Dans le coin supérieur gauche de la fenêtre du projet, vous devriez voir quelque chose comme l'image ci-dessous si vous êtes dans la vue Android . (Si vous êtes dans la vue Projet , vous devrez développer le projet pour voir la même chose)
Veuillez noter qu'Android Studio peut prendre plusieurs secondes pour compiler le projet en arrière-plan pour la première fois. Pendant ce temps, vous verrez une icône dans la barre d'état en bas d'Android Studio :
Nous vous recommandons d'attendre que cette opération soit terminée avant de modifier le code. Cela permettra à Android Studio d'intégrer tous les composants nécessaires.
De plus, si vous recevez une invite indiquant « Recharger pour que les modifications de langue prennent effet ? » ou quelque chose de similaire, sélectionnez "Oui".
Configuration de l'émulateur
Si vous avez besoin d'aide pour configurer un émulateur Android, reportez-vous à 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. Consultez la documentation FirebaseMessagingService pour en savoir plus.
- La fonction
onNewToken
est appelée lorsque le jeton d'enregistrement FCM est créé ou actualisé. Voir Surveiller la génération de jetons pour plus d’informations. - 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.- Consultez Recevoir des messages dans une application Android pour en savoir plus sur les différences entre la livraison et la gestion des messages en arrière-plan et au premier plan.
- 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é. Il générera un jeton d'enregistrement FCM valide et l'enregistrera.
- Le
MainActivity.java
ajoute leRecyclerView
qui affiche les choix de catégorie de stock. -
SubscriptionAdapter.java
implémenteRecyclerView.Adapter
qui dessine l'écran de sélection de catégorie de stock.- Chaque catégorie de stock a un nom et une bascule d'abonnement à côté.
- La modification de la bascule devrait effectuer un appel d'abonnement/désabonnement au sujet FCM.
- Vous mettrez en œuvre ces appels dans les sections à venir.
- La classe
model/StockCategories.java
contient une liste de toutes les catégories de stock et leurs noms de rubrique associés.
Exécutez 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 et appuyez sur le bouton Exécuter.
- L'interface utilisateur de l'application ressemblera à ceci :
- L'application créera un jeton d'enregistrement FCM et l'enregistrera. Cependant, rien ne changera dans l'interface utilisateur de l'application.
- Copiez et enregistrez le jeton d'enregistrement FCM car il sera utilisé dans les prochaines étapes.
5. Envoyer un message test
Vous êtes maintenant prêt à envoyer un message test à l'instance d'application que vous avez configurée à la dernière étape.
Importer le code du serveur de démarrage
Démarrez IntelliJ IDEA et ouvrez le projet messaging/fcm-topics-codelab/starter/StockNewsServer
.
La vue du projet dans votre barre de navigation de gauche devrait ressembler à ceci :
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
a déjà la dépendance sur le SDK firebase-admin qui y est ajoutée. Ce SDK donne accès à diverses fonctionnalités d'envoi de messages FCM.
- Enfin, il existe deux classes, à savoir :
-
FcmSender.java
: Cette classe contient les méthodes suivantes :-
initFirebaseSDK
: initialise le SDK Firebase-admin. -
sendMessageToFcmRegistrationToken
: envoie un message à un jeton d'enregistrement FCM. -
sendMessageToFcmTopic
: envoyer un message vers un sujet FCM. -
sendMessageToFcmTopicCondition
: envoie un message à une condition de sujet FCM.
-
-
FcmSubscriptionManager.java
: Cette classe contient des méthodes qui permettent de gérer les abonnements aux rubriques côté serveur.-
initFirebaseSDK
: initialise le SDK Firebase-admin. -
subscribeFcmRegistrationTokensToTopic
: abonnez les jetons d'enregistrement FCM à un sujet FCM. -
unsubscribeFcmRegistrationTokensFromTopic
: désabonnez les jetons d'enregistrement FCM d'un sujet FCM.
-
-
Configuration du 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 d'engrenage à côté de Présentation du projet dans la barre de navigation de gauche et sélectionnez Paramètres du projet .
- Dans la page des paramètres, sélectionnez Comptes de service et cliquez sur Créer un compte de service .
- Cliquez maintenant sur le bouton Générer une nouvelle clé privée et un téléchargement automatique de votre fichier de clé commencera.
- Renommez le fichier de clé en
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 chemin de classe à l'aide du code suivant.
- À ce stade, le code du serveur est prêt. Exécutez Build -> Build Project dans la barre de menu supérieure.
Envoi d'un message test
- Dans
FcmSender.java
localisez la fonctionsendMessageToFcmRegistrationToken
et insérez le jeton d'enregistrement FCM que vous avez copié depuis la section Exécuter l'application de démarrage dans le champregistrationToken
. - Dans la fonction
main
, décommentez uniquement la fonctionsendMessageToFcmRegistrationToken
et cliquez sur Exécuter pour exécuter le code.- Observez comment le jeton d'enregistrement FCM est défini dans le champ
Token
de l'objetmessage
. - De plus, remarquez comment nous avons utilisé l'API
send
de l'interfaceFirebaseMessaging
.
- Observez comment le jeton d'enregistrement FCM est défini dans le champ
- Cela devrait envoyer un message à l'instance d'application que vous avez configurée à l'étape précédente.
- Lorsque l'instance d'application est au premier plan, vous devriez voir le contenu du message enregistré.
- Et lorsque l'instance d'application est en arrière-plan, vous observerez le message apparaître dans la barre de notifications.
Génial, vous avez utilisé le SDK Firebase Admin pour envoyer des messages à une instance d'application. En savoir plus sur l'utilisation du SDK Firebase Admin sur votre serveur .
6. Mettre en œuvre l'abonnement/désabonnement au sujet
Dans cette étape, vous mettrez en œuvre des actions d'abonnement et de désabonnement à un sujet, sur la bascule Catégorie de stock de l'application Android.
Lorsqu'un utilisateur de l'application bascule le commutateur pour une catégorie d'actions particulière, un appel d'abonnement ou de désabonnement au sujet sera effectué.
Code de révision
- 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 la bascule d'abonnement à l'aide de
setOnCheckedChangeListener
. - En fonction de la bascule du commutateur, 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 paronBindViewHolder
de l’adaptateur RecyclerView pour lier le ViewHolder à la catégorie de stock appropriée.
Implémenter l'abonnement au sujet
- Dans la méthode
subscribeToStockCategory
, vous implémenterez l'appel à l'APIsubscribeToTopic
de l'objetFirebaseMessaging
. Le code pourrait ressembler à ceci :
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(); }); }
Mettre en œuvre le désabonnement du sujet
- De même, dans la condition else, vous implémenterez l’appel à l’API
unsubscribeFromTopic
. Quelque chose dans le sens de ce qui suit :
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-le
- Exécutez l'application et activez les options de catégorie de stock pour exécuter les actions d'abonnement et de désabonnement. Cela ressemblerait à ceci :
S'abonner | Se désabonner |
7. Envoi de votre premier message thématique
Dans cette étape, vous implémenterez le code côté serveur pour envoyer un message de sujet FCM.
Implémenter l'intégration côté serveur pour l'envoi d'un message de sujet
- Dans le code du serveur, accédez à
FcmSender.java
et localisez 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 de la forme :
/topics/<Topic Name>
. Par exemple,/topics/Technology
.
- Il s'agit d'une chaîne de la forme :
- Dans les lignes suivantes, créez un nouvel objet
message
(similaire à celui défini dans la fonctionsendMessageToFcmRegistrationToken
).- La différence sera qu'au lieu de définir le champ
Token
de l'objetmessage
, vous définirez le champTopic
.
- La différence sera qu'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 à la fonctionsendMessageToFcmTopic
uniquement.
Envoyer un message et valider la réception
- Avant d'envoyer le message de sujet, assurez-vous d'abord que votre instance d'application est abonnée au sujet auquel vous souhaitez envoyer.
- Cela peut être fait en appuyant sur la bascule correspondante. Par exemple:
- Vous pouvez maintenant envoyer votre message de 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 : essayez de vous désinscrire du sujet auquel vous avez envoyé et renvoyez le message. Vous remarquerez que le message n’est pas transmis à l’instance d’application.
8. Envoi de 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 fournir une définition d'audience plus expressive.
Par exemple, dans notre application StockNews, envisagez la possibilité d'envoyer des messages à un groupe d'instances d'application abonnés à des sujets technologiques ou automobiles. Un tel cas peut se produire, par exemple, s’il y a un é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
- && : ET logique. Par exemple,
'Technology' in topics && 'Automotive' in topics
: cible uniquement les instances d'application qui sont abonnées aux sujets technologiques et automobiles. - || : OU logique. Par exemple,
'Technology' in topics || 'Automotive' in topics
: cible les instances d'application qui sont abonnés à des sujets technologiques ou automobiles. - () : Parenthèses pour le regroupement. Par exemple,
'Technology' in topics && ('Automotive' in topics || 'Energy' in topics)
: cible uniquement les instances d'application qui sont abonnées aux sujets Technologie et aux sujets Automobile ou Énergie.
En savoir plus sur la façon de créer des demandes d'envoi pour utiliser cette fonctionnalité.
Implémenter l'intégration côté serveur pour l'envoi d'un message de condition de sujet
- De retour dans le code du serveur, accédez à
FcmSender.java
et localisez 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 nouvel objet
message
(similaire à celui défini dans la fonctionsendMessageToFcmTopic
).- La différence sera qu'au lieu de définir le champ
Topic
de l'objet, vous définirez le champCondition
.
- La différence sera qu'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 activez l’appel à la fonctionsendMessageToFcmTopicCondition
uniquement.
Envoyer le message et valider la réception
- Avant d'envoyer le message de sujet, assurez-vous d'abord que votre instance d'application satisfait à la condition de sujet spécifiée en l'abonnant aux sujets Technologie et Automobile.
- Vous pouvez maintenant envoyer votre message de sujet en exécutant la fonction
main
deFcmSender.java
. - Comme auparavant, 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 désormais vous désinscrire du sujet Technologie et renvoyer le message de condition du sujet. Vous devez remarquer que le message n'est pas reçu par l'instance d'application.
9. Récapitulatif
Faisons un bref récapitulatif de ce que vous avez appris jusqu'à présent.
- Comment lancer un abonnement/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'application souscrites.
- Envoi d'un message à une condition de sujet et vérification de la réception sur une instance d'application qui satisfait à la condition.
Dans la section suivante, vous découvrirez comment vous pouvez abonner/désabonner des instances d'application à des sujets sans avoir besoin d'instancier des appels du 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 à un sujet étaient lancés à partir d'une instance d'application.
Cependant, dans certains cas d'utilisation, vous souhaiterez peut-être gérer les abonnements aux rubriques depuis le côté serveur. Par exemple, vous souhaiterez peut-être 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 apprendrez à utiliser le SDK d'administration Firebase pour abonner et désabonner un lot de jetons d'enregistrement FCM à un sujet en effectuant des appels depuis le 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 implémenterez ici l’appel à l’APIsubscribeToTopic
.
- Abonnons l'instance d'application au sujet Énergie. Pour ce faire, renseignez d'abord les données des deux champs suivants :
-
registrationTokens
: une liste de chaînes séparées par des virgules représentant les jetons d'enregistrement FCM pour lesquels vous souhaitez créer des abonnements à des sujets. -
topicName
: le nom du sujet Énergie, c'est-à-dire/topics/Energy
.
-
- Dans les prochaines lignes, implémentez l'appel, dans le sens suivant :
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic( registrationTokens, topicName);
- Vous pouvez inspecter le
TopicManagementResponse
pour obtenir des statistiques de résultats de haut niveau. Par exemple, imprimer le nombre d'abonnements à des sujets créés avec succès à l'aide degetSuccessCount
.
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
- Enfin, dans la fonction
main
, activez les appels uniquement à la fonctionsubscribeFcmRegistrationTokensToTopic
.
Créer un abonnement et envoyer un message de sujet
- À 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
. Cela créera un abonnement au sujet. - Maintenant, configurez le code pour envoyer le message. Comme avant,
- Dans
FcmSender.java
, recherchez la fonctionsendMessageToFcmTopic
. - Définissez le
topicName
sur le sujet Energy, c'est-à-dire/topics/Energy
. - Créez un objet
Message
et ciblez-le sur le sujet à l'aidesetTopic
. - Enfin, mettez à jour la méthode
main
pour activer uniquement la fonctionsendMessageToFcmTopic
.
- Dans
- Exécutez la fonction
main
deFcmSender.java
. Cela enverra le message à votre instance d'application et vous pourrez 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 côté serveur des jetons d'enregistrement FCM au sujet FCM
- Pour les désabonnements à des sujets côté serveur, utilisez cette API
unsubscribeFromTopic
. Vous ajouterez le code pertinent à la fonctionunsubscribeFcmRegistrationTokensFromTopic
de la classeFcmSubscriptionManager.java
.
- L'implémentation du code de désabonnement côté serveur et la validation de son effet par l'envoi d'un message thématique vous sont laissées en exercice.
11. Félicitations
Félicitations, vous avez utilisé avec succès les sujets FCM pour envoyer des messages de multidiffusion à des sous-groupes de vos instances d'application. Cela vous aidera à simplifier votre capacité à atteindre vos utilisateurs en temps opportun avec un contenu pertinent.
Et après?
Maintenant que vous avez terminé votre atelier de programmation, envisagez d'essayer des sujets pour d'autres plates-formes à l'aide des guides suivants :