Can't get expoToken in Expo Notification, due to Failed resolution of: Lcom/google/firebase/iid/FirebaseInstanceId;

The final plugin (I have not tested this code) may look like this:

//firebase-iid-plugin.js
const expoConfigPlugins = require("@expo/config-plugins");

const firebaseIID = "com.google.firebase:firebase-iid";
const iidVersion = "17.0.2";

function addDependency(buildGradle) {
  if (!buildGradle.includes(firebaseIID)) {
    // TODO: Find a more stable solution for this
    buildGradle = buildGradle.replace(
      /dependencies\s?{/,
      `dependencies {
        implementation '${firebaseIID}:${iidVersion}'`
    );
  }
  return buildGradle;
}

/**
 * Update `app/build.gradle` by adding firebase-iid dependency
 */
module.exports = function withIidDependency(config) {
  return expoConfigPlugins.withAppBuildGradle(config, (config) => {
    config.modResults.contents = addDependency(config.modResults.contents);
    return config;
  });
};

Then add it to your app.json:

"plugins": [..., "./firebase-iid-plugin"]
2 Likes