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"]