FCM getting 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. Même si, tous les utilisateurs ont exactement la même application. Comment certains utilisateurs peuvent-ils obtenir une réponse positive et d'autres un ID D'erreur?

j'ai fait de nombreuses recherches et je me suis assuré d'avoir ajouté tous les prérequis dont la FCM a besoin.

Tout des suggestions?

EDIT:

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 );

mise à jour:

il semble que le problème ait été résolu avec les mises à jour SDK. Je suis maintenant à l'aide de la dernière com.google.firebase:firebase-messaging:9.6.1, je n'ai pas "MismatchSenderId" plus.

41
demandé sur TareK Khoury 2016-06-16 18:13:00

15 réponses

Firebase a mis à jour les clés de son serveur vers une nouvelle version. Utilisez de nouvelles clés au lieu d'anciennes.

allez dans paramètres->paramètres du projet->messagerie en nuage onglet

enter image description here

Peut-être cela fonctionnera

20
répondu Jinu P C 2017-03-12 18:17:38

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 elle était correcte ce qui est comme AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
  • puis je vérifie L'identité de L'expéditeur comme 79XXXXXXXX c'était aussi correct.
  • le principal problème était device_ID (UDID) a qui je dois envoyer la notification. En fait DeviceId nous avons obtenu sur le côté androïde en FCM est différent de celui GCM. Vous ne pouvez pas utiliser GCM créer Id FCM.

j'Espère que cela va vous aider. Merci

8
répondu Nauman Khan 2018-03-15 08:57:47

dans mon cas, je me trompais sur les justificatifs d'identité du projet: utiliser les services google.json d'un projet, et clé de serveur d'un autre.

3
répondu Luiz Fernando da Silva 2018-06-11 14:22:26

assurez-vous de supprimer tout le code Parse de votre application (bibliothèques, récepteurs dans AndroidManifest, etc). J'ai constaté que les notifications de poussée intermittentes ne fonctionnaient pas. D'après mes observations, cela fonctionnerait sur les nouvelles installations mais pas sur les mises à jour des applications de la boutique play.

je crois que quelque chose d'interne à analyser était en conflit avec la FCM (Parse utilise la GCM, donc je suppose que cela a à voir avec l'utilisation de la GCM et de la FCM simultanément). Dès que j'ai arraché tous les récepteurs Parse et bibliothèques, les choses ont bien fonctionné.

2
répondu Wild 2016-10-13 13:52:02

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

2
répondu Flowra 2016-11-23 19:39:07

case gcm_sender_id dans le manifeste.json Si l'inadéquation - correct, mais vous avez besoin de faire de nouveaux abonnés pour le nouvel ID de l'expéditeur. Les abonnés existants se cassent.

1
répondu stasionok 2017-02-25 06:47:15

selon la réponse "MismatchSenderId", il s'agit d'une inadéquation entre FireBase et vos "services google" locaux.json", vous devez vous assurer que les deux se manifeste correspond à

dans la console FireBase vous allez à" YourProject > Project OverView > Cloud Messaging "vous verrez le" SenderID "qui doit correspondre avec les" google-services.json" dans votre projet Android.

la meilleure chose à faire est de télécharger le fichier json final de l'onglet "Général" et de le placer dans votre projet.

1
répondu Diego Sanabria 2018-02-16 07:43:38

j'ai eu le même problème, et je l'ai fixée comme ceci:

  1. allez sur votre console Google fcm
  2. Sélectionnez votre application
  3. Dans le menu de gauche trouver icône paramètres (roue standard)
  4. cliquez dessus et après cliquez sur Paramètres du projet
  5. maintenant, copiez votre clé de serveur et collez-la en php

Voila...

0
répondu V. Sambor 2016-09-30 06:05:53

mise à Jour de firebase initialisation fonctionne pour moi..

<script src="https://www.gstatic.com/firebasejs/4.6.2/firebase.js"></script>
 <script>
  // Initialize Firebase
  // TODO: Replace with your project's customized code snippet
  var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
  };
  firebase.initializeApp(config);
</script>
0
répondu Shivam Sihare 2017-12-11 10:36:29

pour moi le problème était que j'utilisais le phonegap-plugin-push dans cordova, tester l'application avec l'application phonegap.

le problème avec ceci est que pour une raison quelconque avec ce plugin, l'application phonegap l'intercepte et renvoie une clé d'enregistrement factice, peu importe L'identifiant de l'expéditeur que vous avez.

donc pour que cela fonctionne (tant que vous avez toutes vos clés à droite) est de tester votre programme d'une autre manière, avec un émulateur, ou l'émulation android via usb. Et vos clés correspondre.

J'espère que cela fera gagner du temps à quelqu'un.

0
répondu Pablo 2018-03-29 18:46:40

j'ai eu la même erreur en essayant d'envoyer la notification push. Obtenez la mise à jour de google-services.fichier json et remplacé avec elle. A travaillé pour moi.

0
répondu Karthikeyan Ve 2018-05-10 07:04:09

en Fait, il y a plusieurs raisons à cette question. La mienne était à cause de token invalide. Je passais le même token généré à partir d'une application et j'utilisais le même token dans une autre application. Une fois le token mis à jour, ça marche pour moi.

0
répondu Shabir Mustafa 2018-06-04 05:32:07

vous avez probablement fait ce que je faisais. GCM token n'est plus le même que FCM désormais. vérifiez si vous tirez L'ID du jeton GCM au lieu de FCM. il vous suffit de surcharger FirebaseInstanceIdService et de vous assurer que vous obtenez le bon ID. j'ai cru à un moment qu'elles étaient les mêmes, mais maintenant, elles ne le sont plus. j'ai connecté un essai et les a vu. après cela, mettez à jour aussi google-services.json comme d'autres disent que la sécurité.

0
répondu j2emanue 2018-07-12 11:50:22

vous aurez une clé de serveur quelque chose comme ceci AIzaSyDiTEVq4Li1pj7IyraRlyRU9adc-49-KVY disponible dans le Paramètresconsole.firebase.google.com/project/project-XXXXXXXXXXXXX/settings/cloudmessaging.

Spécifiez le bon avec votre code et réessayez.

-1
répondu Hareesh S Nair 2016-06-28 11:21:57

j'obtiens aussi la même erreur. j'ai copié api_key et je me change en google_services.json. après qu'il workig pour moi

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

essayez ceci

-2
répondu Karthik Sridharan 2016-10-21 07:36:28