Salvatorelab
Salvatorelab

Reputation: 11873

FirebaseInitProvider: FirebaseApp initialization unsuccessful

We have followed the Add Firebase to your Android Project but we can't see the app receiving data in the Firebase Console.
And when we launch the app, the log says:

FirebaseInitProvider: FirebaseApp initialization unsuccessful

What does this mean? What are we doing wrong?
I can't find this error in the docs, nor here in StackOverflow.

Upvotes: 47

Views: 38376

Answers (10)

Martin Zeitler
Martin Zeitler

Reputation: 76569

What does this mean? What are we doing wrong?

Would assume, that the authentication did not succeed.

a) the buildscript repositories and dependencies for the project level build.gradle:

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        
        // Android Gradle Plugin
        classpath "com.android.tools.build:gradle:3.3.2"

        // Google Services Plugin
        classpath "com.google.gms:google-services:4.2.0"
    }
}

b) the dependencies for the module level app/build.gradle (the Android Intel x86 images may still have a previous version of the Google Play Services installed, eg. 10.2.0 runs on the current x86 emulator, while eg. 11.8.0 runs on my physical ARM device). referencing play-services and firebase-core will include all of their modules, unless excluding some them. update: one has to reference all the libraries individually now. referencing com.google.android.gms:play‐services and com.google.firebase:firebase-core does not work anymore since 15.0.0.

android {
    ...
    buildTypes {
        debug {
            // suffixing the package name for debug builds,
            // in order to partially mute the crash-reporting
            // is an *optional* configuration (see below):
            applicationIdSuffix ".debug"
        }
    }
}

dependencies {

    // Google Play Services
    // https://developers.google.com/android/guides/releases
    implementation "com.google.android.gms:play-services-base:15.0.1"
    implementation "com.google.android.gms:play-services-auth:16.0.0"
    implementation "com.google.android.gms:play-services-identity:15.0.1"

    // Google Firebase
    // https://firebase.google.com/support/release-notes/android
    implementation "com.google.firebase:firebase-core:16.0.1"
    implementation "com.google.firebase:firebase-auth:16.0.3"
    implementation "com.google.firebase:firebase-config:16.0.0"
    implementation "com.google.firebase:firebase-storage:16.0.1"
    implementation "com.google.firebase:firebase-database:16.0.1"
    implementation "com.google.firebase:firebase-messaging:17.3.0"
    implementation "com.google.firebase:firebase-appindexing:16.0.1"
    implementation "com.google.firebase:firebase-functions:16.1.0"
    implementation "com.google.firebase:firebase-invites:16.0.1"
    // implementation "com.google.firebase:firebase-crash:16.0.1"
    implementation "com.google.firebase:firebase-ads:15.0.1"
    implementation "com.google.firebase:firebase-firestore:17.0.4"
    implementation "com.google.firebase:firebase-perf:16.0.0"

    // the inapp messaging may cause dependency conflicts: 
    // implementation "com.google.firebase:firebase-inappmessaging:17.0.0"
    // implementation "com.google.firebase:firebase-inappmessaging-display:17.0.0"
}

c) the bottom line of mobile/build.gradle should be:

// apply the Google Services Plugin
apply plugin: "com.google.gms.google-services"

d) make sure to have the (downloaded) credentials available at app/google-services.json; on the Firebase Console, one has to add both SHA1 (or SHA256) hashes, of the debug and the release keys, in order to have both builds authenticating properly; once it all matches, it should report:

I/FirebaseInitProvider: FirebaseApp initialization successful

It's all well documented, just see Setup Google Play Services, Firebase Quickstart or Crash Reporting; while I find this article on the Firebase Blog quite useful: Organizing your Firebase-enabled Android app builds, because it explains how to partially mute the crash-reporting. The release notes always announce the updates & changes.

Upvotes: 40

Prajjwal Singh
Prajjwal Singh

Reputation: 1

In the build.gradle (project level)

change

    classpath 'com.google.gms:google-services:4.1.0'

to this

    classpath 'com.google.gms:google-services:4.0.1'

Upvotes: 0

Anuj Sachan
Anuj Sachan

Reputation: 40

Whole problem occure because of two reason:

1. You have not taken permision in mainfest

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />

[enter image description here][1]

2. your gradle build version have bug- project level dependency

classpath 'com.google.gms:google-services:4.1.0'

replace with

classpath 'com.google.gms:google-services:4.0.1'

Upvotes: 2

Shoeb Ahmed
Shoeb Ahmed

Reputation: 21

I too was facing a similar issue. I had imported my Google developer project to Firebase and had done all the steps as given in the instructions in the Android studio app and Firebase console i.e. adding the dependencies, google-services.json file and building again.

It still would not send data to the Firebase console. So, while going through the logcat, Firebase was unable to initialise as the google_app_id seemed to be missing.

After a lot of trial and error, I had to add a new string resource in my res/values/strings.xml file.

    <string name="google_app_id">YOUR_GOOGLE_APP_ID</string>

The Google App ID is available in the google_services.json file that you have downloaded from the Firebase console under the heading mobilesdk_app_id.

"client": [
    {
      "client_info": {
        "mobilesdk_app_id": "SOMETHING"
      }
    .
    .
    .

Copy the mobilesdk_app_id and paste it into your string resource inside res/values/strings.xml file with the name google_app_id.

Rebuild the code and it should work. :)

Upvotes: 2

HemangNirmal
HemangNirmal

Reputation: 641

Make sure you have added this line to App level build.gradle file

apply plugin: 'com.google.gms.google-services'

Upvotes: 3

RichardG
RichardG

Reputation: 41

I got the same Logcat output.

Fixed it by updating my Google Play Services Dependency to 9.0.0 in my app/build.gradle

and updating

buildScript {
    //...
    dependencies {
        //...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

in my project build.gradle to 3.0.0

Upvotes: 0

Victor Mwenda
Victor Mwenda

Reputation: 1791

The first thing I would advice you to check on is:

1) Have you included the <uses-permission android:name="android.permission.INTERNET" /> in your Manifest ?

Upvotes: 3

Jyoti JK
Jyoti JK

Reputation: 2171

In my case, I did all the things in Gradle properly. Even though it showed FirebaseApp initialization unsuccessful

I added com.google.android.c2dm.permission.RECEIVE permission in manifest which solved my problem.

 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
 <uses-permission android:name="android.permission.INTERNET" />

Upvotes: 1

Juan Pablo
Juan Pablo

Reputation: 1223

In my case I was trying to Selectively compile Google play Services. Instead of using

compile 'com.google.android.gms:play-services:9.4.0'

as described at: https://developers.google.com/android/guides/setup#ensure_devices_have_the_google_play_services_apk

I manually added maps and some other dependencies module from Google Play Services as

compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.android.gms:play-services-places:9.4.0'

Unfourtunately Firebase stoped working after this.

As a result I had to rollback and return to use

compile 'com.google.android.gms:play-services:9.4.0'

instead of selectively.

Upvotes: 0

Sayyam
Sayyam

Reputation: 959

It happens when you dont have apply plugin: 'com.google.gms.google-services' in your app/build.gradle. Try adding it.

Also make sure you have Google Play services SDK installed in Android SDK Manager.

Upvotes: 20

Related Questions