FirebaseAuth:getGoogleApiFormMethod()返回Gms:com.google.firebase.auth.api.internal。zzal@489

FirebaseAuth:getGoogleApiFormMethod()返回Gms:com.google.firebase.auth.api.internal。zzal@489,firebase,flutter,firebase-authentication,Firebase,Flutter,Firebase Authentication,当我试图通过电话验证时,我发现了以下错误 W/BiChannelGoogleApi(12340): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@489 我已经在Stackverflow和其他地方检查了相同的错误,但没有得到正确的解决方案 pubspec.yml中的技术 dependencies: flutter: sdk: flut

当我试图通过电话验证时,我发现了以下错误

W/BiChannelGoogleApi(12340): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@489
我已经在Stackverflow和其他地方检查了相同的错误,但没有得到正确的解决方案

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
注意——将//新增到highlite中我在上述文件中添加的行

在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 {
    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/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 {
    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

我正在使用AndroidX。

这可能是由于测试设备上的google play服务版本不兼容

如果是模拟器,请尝试切换到其他图像,并检查您是否使用最新版本的play services


请注意,只有安卓N(API 24)及以上版本支持通过playstore更新游戏服务

我有这个错误,但它发生了,因为我试图在我的应用程序上创建一个具有相同电子邮件的帐户,我必须从数据库和身份验证中删除该帐户

我返回的代码与你的有点不同

[FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@**5bfaa19**

这一次我损失了几个小时,所以让我分享一下我的经验

Gms的意思是“,它基本上是谷歌开发的安卓系统的附加API,允许连接到谷歌提供的一系列服务。 如果您使用flatter,这可能是由您使用的flatter包包装的,例如firebase_auth、flatter_facebook_登录或/和google_登录

此错误有时可能由更高级别的组件处理,因此,如果您有此错误,并不意味着您的配置错误或无法工作。 在我的例子中,当我使用Google登录时,出现了这个错误,最终结果是成功的,类似这样:

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....
我的代码中有一个dart调用
print(fireUser);
,所以我们看到它是成功的

但是在FacebookAuth的例子中,我刚刚看到了这个,之后什么也没有发生,但是在FacebookServer端,登录成功了,因为我可以在FacebookDev控制台中看到事件

info flutter.tools W/BiChannelGoogleApi( 4106): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@8116b2c
日志中没有其他内容,所以在这个过程中有些东西被卡住了

我的问题是我混合了两个应用程序App Id和Secret。我有时是个笨蛋,但问题是没有任何警告或特定错误,所以下面列出了Firebase和其他插件可能失败的事情:

  • 确保您已在Firebase控制台中正确配置登录提供商(谷歌、facebook等)
  • 升级所有颤振软件包。我个人不使用软件包版本,我使用所有颤振软件包的最新版本。我使用AndroidX
在Facebook Auth的具体案例中(我发现谷歌登录更容易集成):

  • 确保你看到了好的应用程序
  • 确保应用程序ID和应用程序机密是正确的。在Facebook开发控制台中,检查那里的基本设置
  • 确保您已经添加了“Facebook登录”产品。如果您在Facebook开发控制台的左侧菜单中没有看到它,请检查仪表板并添加它
  • 在“Facebook登录”产品设置中,确保已添加Firebase控制台提供给您的“有效OAuth重定向URI”(在Facebook登录提供程序配置中)。您可以在该页面下方的“重定向URI验证程序”工具中进行检查
  • 在应用程序的基本设置中,如果您使用Flatter(=>移动平台),请确保您有IOS分区/平台和Android分区/平台。要实现这一点,您可以手动“添加平台”,或使用快速启动
  • 最后,IOS部分只能包含“Bundle ID”
  • Android部分应该包含“Google Play软件包名”、“类名”和至少一个“密钥哈希”(用于调试)。如果您不知道如何创建哈希,请使用“Facebook登录”快速启动

希望这有帮助这是一个依赖性问题,你可能想再次查看你的firebase设置。我运行了一个颤振应用程序,遇到了同样的问题。

我得到了这个stacktrace

GetGoogleApiFormMethod()返回的Gms: com.google.firebase.auth.api.internal。zzak@a73de51

我忘记在Firebase控制台中启用
登录提供程序
。在身份验证部分的登录方法选项卡下启用
电话提供程序
后,我解决了此问题

我也犯了同样的错误

GetGoogleApiFormMethod()返回的Gms: com.google.firebase.auth.api.internal。zzak@a73de51I/颤振(2870): 提供的电话号码格式不正确

起初我只发送没有国家代码的手机号码,然后我只发送带有国家代码的电话号码

例如:
+918811111111


它工作得很好。

在我的情况下,我只是懒洋洋地使用了一个3个字符长的密码。我不知道这是否有一天会对其他人有所帮助。这是因为“oncomplete listener”自动验证了电话号码是否正确。这是一个内部API,但我们需要短信验证。
因此,它不会在安装应用程序的号码上发送短信。如果发送到另一个设备号码,它肯定会工作。

我有此错误,在更新我的pubspec.yaml文件中的库后,我无法连接电子邮件/密码

为了解决此错误,我还更新了gradle文件(build.grade):

在我的gradle-wrapper.properties文件中,我更新了以下行:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

我已经解决了这个问题。 我有一个明确的解决办法

按照以下步骤操作:

  • 首先转到firebase,然后进行身份验证并启用呼叫验证
  • 2.第二件事是:电话号码的格式是+countrycode,然后是phonenumber(比如+918282…)

    希望这是有帮助的

    W/BiChannelGoogleApi(12340): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@489
    
    这些类型的错误代码几乎毫无用处。试试看

    Log.i("flag", "signInAnonymously:failure", task.exception) 
    
    在auth.createUserWithEmailAndPassword或类似方法中

    在验证时,google将使用