Voici des concepts plus clairs sur le message firebase. Je l'ai trouvé dans leur équipe de support.
Firebase dispose de trois types de messages :
Messages de notification : Le message de notification fonctionne en arrière-plan ou au premier plan. Lorsque l'application est en arrière-plan, les messages de notification sont envoyés dans la barre d'état système. Si l'application est en avant-plan, les messages sont traités par onMessageReceived()
o didReceiveRemoteNotification
les rappels. Il s'agit essentiellement de ce que l'on appelle les messages d'affichage.
Messages de données : Sur la plateforme Android, le message de données peut fonctionner en arrière-plan et en avant-plan. Le message de données sera traité par onMessageReceived(). Une note spécifique à la plateforme serait ici : Sur Android, la charge utile des données peut être récupérée dans l'Intent utilisé pour lancer votre activité. En d'autres termes, si vous avez "click_action":"launch_Activity_1"
vous pouvez récupérer cette intention par le biais de getIntent()
de seulement Activity_1
.
Messages contenant à la fois des notifications et des données : Lorsqu'elles sont en arrière-plan, les apps reçoivent la charge utile de la notification dans la zone de notification et ne traitent la charge utile de données que lorsque l'utilisateur tape sur la notification. Au premier plan, votre application reçoit un objet message avec les deux données utiles disponibles. Deuxièmement, le paramètre click_action est souvent utilisé dans les données utiles de notification et non dans les données utiles. S'il est utilisé dans les données utiles, ce paramètre sera traité comme une paire clé-valeur personnalisée et vous devrez donc mettre en œuvre une logique personnalisée pour qu'il fonctionne comme prévu.
Je vous recommande également d'utiliser la méthode onMessageReceived (voir Message de données) pour extraire le paquet de données. À partir de votre logique, j'ai vérifié l'objet bundle et je n'ai pas trouvé le contenu de données attendu. Voici une référence à un cas similaire qui pourrait apporter plus de clarté.
Du côté du serveur, la notification de firebase doit avoir le format suivant :
Le côté serveur doit envoyer "notification" objet. Le manque d'objet "notification" dans mon TargetActivity
Je n'ai pas reçu de message en utilisant getIntent()
.
Le format correct du message est donné ci-dessous :
{
"data": {
"body": "here is body",
"title": "Title"
},
"notification": {
"body": "here is body",
"title": "Title",
"click_action": "YOUR_ACTION"
},
"to": "ffEseX6vwcM:APA91bF8m7wOF MY FCM ID 07j1aPUb"
}
Voici des concepts plus clairs sur le message firebase. Je l'ai trouvé dans leur équipe de support.
Pour plus d'informations, visitez mon ce fil y ce fil
0 votes
En plus du corps json, où est votre onTokenRefresh code ? Avez-vous complété le Configuration Android ?
4 votes
Que voulez-vous dire par le corps json de la notification ? De plus, mon code onTokenRefresh se trouve dans mon service FirebaseInstanceID.
0 votes
Pouvez-vous afficher l'échantillon de la charge utile que vous envoyez ?
0 votes
Utiliser istudy.io/Android-push-notifications-using-firebase-fcm
0 votes
Vous pouvez également consulter ce fil de discussion stackoverflow.com/questions/39046270/
0 votes
Il existe deux types de FCM . stackoverflow.com/a/37845174/3496570
0 votes
J'ai tout expliqué en détail ici : stackoverflow.com/questions/45671869/
0 votes
J'ai le même problème firebase-messaging-service-not-received-when-app-closed
0 votes
stackoverflow.com/questions/37711082/