[firebase] FCM getting MismatchSenderId

I had the same issue in my react-native - node.js project. I wanted to send notifications in android. Everything was set-up and working fine (i.e. I was able to send notifications from node.js and receive notifications on android device).

After a few days, I had to use a different firebase account, so I changed the google-services.json file in my project's android/app folder and rebuilt the project. But, when I tried sending notification from my server once again, I got an error -

{.............
  errorInfo: {
    code: 'messaging/mismatched-credential',
    message: 'SenderId mismatch'
  },
  codePrefix: 'messaging'
}

Solution:

the XML file at the location - app/build/generated/res/google-services/{build_type}/values/values.xml was not getting automatically updated according to new google-services.json. It still consisted of old values from my previous google-services.json file. I had to change values.xml file manually.

This is how app/build/generated/res/google-services/{build_type}/values/values.xml file look (You need to change it manually if it does not get updated automatically according to google-services.json)-

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <! -- Present in all applications -->
    <string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string>

    <! -- Present in applications with the appropriate services configured -->
    <string name="gcm_defaultSenderId" translatable="false">1035469437089</string>
    <string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string>
    <string name="ga_trackingId" translatable="false">UA-65557217-3</string>
    <string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string>
    <string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string>
    <string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string>
    <string name="project_id" translatable="false">mydemoapp</string>

</resources> 

You can refer to these links:

  1. https://firebase.google.com/docs/projects/multiprojects
  2. Processing the JSON file: https://developers.google.com/android/guides/google-services-plugin#processing_the_json_file.