Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FirebaseAuth: getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@489

When I am trying to phone authntication I am getting below error.

W/BiChannelGoogleApi(12340): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@489

I have checked the same error in Stackverflow and other places but not getting proper solution anywhere.

chnages in pubspec.yml

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  firebase_core: ^0.3.0+2  //new
  firebase_auth: ^0.8.1+1  //new

Note -- added //New to highlite the lines which i have added in above file.

Added below line at the end of app/build.gradle

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

android/build.gradle

buildscript {
    ext.kotlin_version = '1.2.71'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

android/app/build.gradle

.....
android {
    compileSdkVersion 28
    .....
    defaultConfig {
        ....
        minSdkVersion 21
        targetSdkVersion 27
        ......
    }
    .....
    dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-auth:16.1.0'
//    implementation 'androidx.core:core-ktx:1.0.0'
}

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

android/app/gradle.properties

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

I am using AndroidX.

like image 773
Gaurav Pant Avatar asked Feb 17 '19 13:02

Gaurav Pant


3 Answers

I recently solved this issue. Basically there are many reason for this this error because this error returns when FirebaseAuth entry point failed to execute. One of the reason of getting this error which I faced is My Emulator was't connected to Internet So turn the internet on inside emulator also.

like image 115
Jiten Dhimmar Avatar answered Oct 19 '22 22:10

Jiten Dhimmar


I lost a few hours on this one, so let me share my experience on this.

Gms stands for "Google Mobile Services", and its basically an addon API to Android developed by Google that allows to connect to a bunch of Google-provided services. If you use flutter, this is probably wrapped by flutter packages you use such as firebase_auth, flutter_facebook_login or/and google_sign_in.

This error may sometimes be handled by the higher level components, so if you have that error, it doesn't mean your configuration is wrong or it won't work. In my case I had this error with successful end result when I was logging using Google Sign in, something like this:

info flutter.tools W/BiChannelGoogleApi( 4106): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@8116b2c
info flutter.tools D/FirebaseAuth( 4506): Notifying id token listeners about user ( lCZZZZJELWhGUZZZZB3vDklZZZZ2 ).
info flutter.tools D/FirebaseAuth( 4506): Notifying auth state listeners about user ( lCZZZZJELWhGUZZZZB3vDklZZZZ2 ).
info flutter.tools I/flutter ( 4506): FirebaseUser({uid: lCZZZZJELWhGUZZZZB3vDklZZZZ2, photoUrl: https://lh5.googleusercontent.com/-ZZzir_P-ENw/AAAAAAAAAAI/AAAAAAAAAAA/PpxhiXg_ISk/s96-c/photo.jpg, isAnonymous: false, etc....

I have a dart call print(fireUser); in my code so we see it's a success.

But in the case of Facebook Auth, I just had this, and nothing happened after that, but on the Facebook server side, login was succeeding as I could see events in Facebook dev console.

info flutter.tools W/BiChannelGoogleApi( 4106): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@8116b2c

And nothing else after in the log, so something was stuck in the process.

My problem was I mixed two applications App Id and Secret. I'm a bonehead sometimes, but the thing is there's zero warning or specific error nowhere, so here are a list of things that can fail with Firebase and other plugins:

  • Make sure you have properly configured the sign-in provider (google, facebook, etc.) in Firebase console
  • Upgrade all flutter packages. I personnaly don't use package versions, I use all flutter packages latest version. And I use AndroidX.

In the specific case of Facebook Auth (I find Google Sign In much easier to integrate):

  • make sure your looking at the good app
  • make sure the App ID and App secret are the good one. In Facebook dev console, check the Basic Settings there.
  • make sure you have added the "Facebook Login" product. If you don't see it in the left menu, in Facebook dev console, check the Dashboard and add it.
  • in the "Facebook Login" product settings, make sure you have added the "Valid OAuth Redirect URIs" that Firebase console gives you (in the Facebook Sign-in provider config). You can check it in the "Redirect URI validator" tool lower in that page.
  • in the Basic Settings of the app, if you use flutter (=> mobile platforms), make sure you have an IOS section/platform and and Android section/platform. To achive that you can do it manually "Add platform", or use the Quick Starts.
  • in the end, the IOS section can contain only the "Bundle ID"
  • and the Android section should containe the "Google Play Package Name", the "Class Name" and at least one "Key Hashes" (for debug). If you don't know how to create the hash, use the "Facebook Login" quick start.

Hope this helps

like image 36
Simon Mourier Avatar answered Oct 19 '22 22:10

Simon Mourier


I had this error but it happened because I was trying to create an account with same email on my app, I had to remove the account from database and authentication.

My returned code is a little different from yours.

[FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@**5bfaa19**
like image 23
djalmafreestyler Avatar answered Oct 20 '22 00:10

djalmafreestyler