firebase messaging component is not present in android studio

Viewed 1842

Getting error firebase messaging component is not present in android studio. I am using updated firebase messaging version

implementation 'com.google.firebase:firebase-messaging:21.0.1'

3 Answers

So, I was facing this issue and even ended up setting a bounty for it.

My problem was that I had just shifted to Multi-Modular structure from a single app module and started facing this issue.

I tried a few solutions :-

  1. Registering the Firebase components explicitly
<service android:name="com.google.firebase.components.ComponentDiscoveryService" >
    <meta-data
        android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
        android:value="com.google.firebase.components.ComponentRegistrar" />
    <meta-data
        android:name="com.google.firebase.components:com.google.firebase.firestore.FirestoreRegistrar"
        android:value="com.google.firebase.components.ComponentRegistrar"/>
    <meta-data
        android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"
        android:value="com.google.firebase.components.ComponentRegistrar" />
    <meta-data
        android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
        android:value="com.google.firebase.components.ComponentRegistrar" />
    <meta-data
        android:name="com.google.firebase.components:com.google.firebase.database.DatabaseRegistrar"
        android:value="com.google.firebase.components.ComponentRegistrar"/>
</service>
  1. Downgrading the google-service plugin

  2. Switching between Firebase BOM and explicitly stating the version.

However, I finally resolved it by keeping all the Firebase dependencies in the App module and then inheriting it in the dynamic modules, by using "api .....", at the same time I also registered my dynamic modules in Firebase.

You need to extend ComponentDiscoveryService.

 <service android:name="com.google.firebase.components.ComponentDiscoveryService" >
        <meta-data
            android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar"
            android:value="com.google.firebase.components.ComponentRegistrar" />
        <meta-data
            android:name="com.google.firebase.components:com.google.firebase.firestore.FirestoreRegistrar"
            android:value="com.google.firebase.components.ComponentRegistrar"/>
        <meta-data
            android:name="com.google.firebase.components:com.google.firebase.iid.Registrar"
            android:value="com.google.firebase.components.ComponentRegistrar" />
        <meta-data
            android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar"
            android:value="com.google.firebase.components.ComponentRegistrar" />
        <meta-data
            android:name="com.google.firebase.components:com.google.firebase.database.DatabaseRegistrar"
            android:value="com.google.firebase.components.ComponentRegistrar"/>
    </service>

Just resolved for Firebase Messaging with

<service 
android:name="com.google.firebase.components.ComponentDiscoveryService" 
android:directBootAware="true" android:exported="false" >

<meta-data android:name="com.google.firebase.components:com.google.firebase.messaging.FirebaseMessagingRegistrar" 
android:value="com.google.firebase.components.ComponentRegistrar" />

<meta-data android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar" 
 android:value="com.google.firebase.components.ComponentRegistrar" />
</service>
Related