| Sélectionnez une plate-forme : | iOS+ Android Web Flutter Unity C++ |
Pour recevoir des messages descendants, chaque application cliente doit implémenter les méthodes de l'API firebase::messaging::Listener.
Initialiser FCM
Avant de pouvoir utiliser FCM pour accéder à votre jeton d'enregistrement ou recevoir des messages, vous devez l'initialiser.
Pour initialiser FCM, appelez ::firebase::messaging::Initialize et fournissez-lui votre objet ::firebase::App ainsi qu'une implémentation de la classe ::firebase::messaging::Listener.
MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);
Accéder au jeton d'enregistrement
Lors du démarrage initial de votre application, le SDK FCM génère un jeton d'enregistrement pour l'instance de l'application cliente. Si vous souhaitez cibler des appareils individuels ou créer des groupes d'appareils pour FCM, vous devez accéder à ce jeton.
Vous pouvez accéder à la valeur du jeton via la fonction virtuelle ::firebase::messaging::Listener::OnTokenReceived.
void OnTokenReceived(const char* token) {
LogMessage("The registration token is `%s`", token);
// TODO: If necessary send token to application server.
}
Recevoir et gérer des messages
Pour recevoir des messages, votre classe d'écouteur doit implémenter la fonction virtuelle OnMessage.
Remplacer OnMessage
En remplaçant la méthode ::firebase::messaging::Listener::OnMessage, vous pouvez effectuer des actions en fonction du message reçu et obtenir les données du message :
void OnMessage(const ::firebase::messaging::Message& message) {
LogMessage(TAG, "From: %s", message.from.c_str());
LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}
Les messages peuvent représenter différents types de données entrantes. Le plus souvent, les messages sont envoyés à l'application après avoir été initiés par le développeur. Des messages sont également envoyés à votre application pour représenter les événements d'envoi de messages, les événements d'erreur d'envoi de messages et les événements de suppression de messages. Ces événements spéciaux peuvent être différenciés en vérifiant le champ Message::message_type.
Messages supprimés
Envoyé à votre application lorsque le serveur FCM supprime les messages en attente.
Message::message_type sera "deleted_messages". Les messages peuvent être supprimés pour les raisons suivantes :
Trop de messages sont stockés sur le serveur FCM.
Cela peut se produire lorsque les serveurs d'une application envoient un ensemble de messages non réductibles aux serveurs FCM alors que l'appareil est hors connexion.
L'appareil ne s'est pas connecté depuis longtemps, et le serveur d'applications a récemment (au cours des quatre dernières semaines) envoyé un message à l'application sur cet appareil.
Nous vous recommandons d'effectuer une synchronisation complète de l'application avec le serveur d'applications après avoir reçu cet appel.