FCM obtient MismatchSenderId

J’ai une application qui utilise Google FCM pour envoyer des notifications push.

Lorsque j’envoie une notification push à un groupe d’utilisateurs, je reçois une réponse de MismatchSenderId pour certains d’entre eux. Bien que tous les utilisateurs aient exactement la même application. Comment certains utilisateurs peuvent-ils obtenir une réponse réussie et d’autres un MismatchSenderId?

J’ai fait beaucoup de recherches et je me suis assuré que j’avais ajouté toutes les conditions préalables requirejses par la FCM.

Aucune suggestion?

MODIFIER:

Exemple de réponse:

 {"multicast_id":5340432438815499122,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]} 

EDIT 2:

Voici le code d’envoi côté serveur (PHP):

 $fields = array ( 'to' => $token, 'data' => $data ); $headers = array ( 'Authorization: key=AIza**************************', 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' ); curl_setopt( $ch,CURLOPT_POST, true ); curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers ); curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true ); curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode($fields) ); curl_exec( $ch ); curl_close( $ch ); 

METTRE À JOUR:

Il semble que le problème ait été résolu avec les mises à jour du SDK. J’utilise maintenant la dernière version de com.google.firebase:firebase-messaging:9.6.1 , je n’obtiens plus “MismatchSenderId”.

Firebase a mis à niveau ses clés de serveur vers une nouvelle version. Utilisez les nouvelles clés au lieu de l’ancienne.

aller dans les parameters-> parameters du projet-> onglet messagerie cloud

entrer la description de l'image ici

Peut-être que ça marchera

J’ai eu le même problème. Après des heures passées à le comprendre, j’ai trouvé cette solution:

  • Tout d’abord, je vérifie que la clé du serveur est correcte ou non, ce qui est comme AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • Ensuite, je vérifie Id expéditeur comme 79XXXXXXXX c’était également correct.
  • Le problème principal était dans device_ID (UDID) à qui je dois envoyer la notification. En fait, DeviceId que nous avons eu du côté Android dans FCM est différent de GCM . Vous ne pouvez pas utiliser DeviceId créé par GCM dans FCM .

J’espère que ceci vous aidera. Merci

Assurez-vous de supprimer tout le code d’parsing de votre application (bibliothèques, récepteurs dans AndroidManifest, etc.). J’ai trouvé que les notifications push intermittentes ne fonctionnaient pas. D’après mes observations, cela fonctionnerait sur de nouvelles installations, mais pas sur les mises à jour d’applications depuis le Play Store.

Je crois que quelque chose interne à Parse était en conflit avec FCM (Parse utilise GCM, donc je suppose que cela concerne l’utilisation de GCM et de FCM simultanément). Dès que j’ai retiré tous les récepteurs et bibliothèques Parse, tout a fonctionné.

ce qui fonctionne pour moi:
J’ai trouvé que le senderId est différent du numéro de projet dans la console FCM
alors j’ai re-téléchargé google-services.json et tout fonctionne bien

Dans mon cas, je me suis juste trompé sur les informations d’identification du projet: utiliser google-services.json d’un projet et une clé de serveur d’une autre.

cochez gcm_sender_id dans manifest.json En cas d’incompatibilité – corrigez, mais vous devez créer de nouveaux abonnés pour le nouvel identifiant d’expéditeur. Existe les abonnés

Selon la réponse “MismatchSenderId”, il s’agit d’une incompatibilité entre FireBase et votre “google-services.json” local, vous devez vous assurer que les deux manifestent des correspondances

Dans la console FireBase, vous allez dans “YourProject> Project OverView> Cloud Messaging”, vous verrez le “SenderID” qui doit correspondre au “google-services.json” de votre projet Android.

La meilleure chose à faire est de télécharger le fichier json final à partir de l’onglet “Général” et de le placer dans votre projet.

J’ai eu le même problème, et je l’ai corrigé comme ceci:

  1. Allez sur votre console google fcm
  2. Sélectionnez votre application
  3. Dans le menu de gauche, trouvez l’icône des parameters (roue standard)
  4. Cliquez dessus et ensuite cliquez sur les parameters du projet
  5. Copiez maintenant votre clé de serveur et collez-la dans php

Voila …

La mise à jour de l’initialisation de Firebase fonctionne pour moi.

   

Pour moi, le problème était que j’utilisais le phonegap-plugin-push dans Cordova, en testant l’application avec l’application phonegap.

Le problème est que, pour une raison quelconque avec ce plug-in, l’application phonegap l’intercepte et renvoie une clé d’enregistrement factice, quel que soit votre identifiant d’expéditeur.

Donc, pour que cela fonctionne (à condition que vous ayez toutes vos clés correctes), vous devez tester votre programme d’une autre manière, avec un émulateur ou une émulation Android via USB. Et vos clés correspondent.

J’espère que cela permettra à quelqu’un de gagner du temps.

J’ai eu la même erreur en essayant d’envoyer des notifications push. Obtenez le fichier google-services.json mis à jour et remplacé par celui-ci. Travaillé pour moi

En fait, il existe de nombreuses raisons à ce problème. Le mien était à cause du jeton invalide passé. Je passais le même jeton généré à partir d’une application et en utilisant le même jeton dans une autre application. Une fois le jeton mis à jour, cela fonctionne pour moi.

Votre probablement faire ce que je faisais. Le jeton GCM n’est plus le même que FCM. vérifiez si vous tirez l’ID de jeton GCM au lieu du FCM. remplacez simplement FirebaseInstanceIdService et assurez-vous d’obtenir le bon identifiant. Je pensais qu’à un moment ils étaient les mêmes mais maintenant il n’y en a pas. J’ai enregistré un test et j’ai vu. Après cela, mettez à jour google-services.json comme d’autres le disent en toute sécurité.

Vous aurez une clé de serveur quelque chose comme cet AIzaSyDiTEVq4Li1pj7IyraRlyRU9adc-49-KVY disponible dans la section Paramètres de la console firebase console.firebase.google.com/project/project-XXXXXXXXXXXXX/settings/cloudmessaging .

Spécifiez la clé correcte avec votre code et réessayez.

J’ai aussi la même erreur. J’ai copié le api_key et changez pour google_services.json. après ça travaille pour moi

 "api_key": [ { "current_key": "********************" } ], 

essaye ça