当我尝试进行电话验证时,我遇到了错误。
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
注意-添加了// //高亮显示我在上述文件中添加的行。
在 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
我正在使用AndroidX。
答案 0 :(得分:7)
我最近解决了这个问题。 基本上有此错误的原因很多,因为当FirebaseAuth入口点执行失败时会返回此错误。 遇到此错误的原因之一是我的仿真器未连接到互联网 因此,也请在模拟器内打开 Internet 。
答案 1 :(得分:2)
我遇到此错误,并且在更新pubspec.yaml文件中的库后,无法连接电子邮件/密码。
要解决此错误,我还更新了gradle文件(build.grade):
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.3'
}
和我的gradle-wrapper.properties文件,我更新了以下行:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
答案 2 :(得分:1)
这是一个依赖性问题,您可能需要再次查看Firebase设置。我遇到了一个Flutter应用程序,并遇到了同样的问题。
答案 3 :(得分:1)
就我而言,我只是很懒,使用了3个字符长的密码。我不知道这是否有一天可以帮助别人。??♂️
答案 4 :(得分:1)
这是因为“不完整的监听器”会自动验证电话号码是否正确。它的内部API,但我们要进行短信验证。 因此,它不会在安装了该应用程序的那个号码上发送短信。发送到另一个设备号,就可以正常使用
答案 5 :(得分:0)
我已经解决了这个问题。 我有明确的解决方案
执行以下步骤:
2。第二件事是:电话号码的格式为+国家/地区代码,然后为电话号码(例如+918282 .....)。
希望这会有所帮助
答案 6 :(得分:0)
我尝试了所有操作,此错误使我花费了大约三个小时的时间,只是为了确保您是否尝试从模拟器发送OTP,否则将无法正常工作,因为它需要网络,您可以检查其他内容。 祝你好运!
答案 7 :(得分:0)
您的解决方案可能来晚了,但就我而言,测试设备(仿真器)中没有WiFi连接
答案 8 :(得分:0)
我的模拟器上肯定有问题。我只是在一个新的模拟器上运行了该应用程序,就可以了。在我的设备上也可以正常运行。
答案 9 :(得分:0)
如果您要进行电话验证,请检查您是否在提供国家/地区代码。那对我有用。
答案 10 :(得分:0)
奇怪的行为, 使用与Firebase连接的android Emulator 使用电话键盘时可以正常使用,但使用我的PC键盘时,会遇到此问题
答案 11 :(得分:0)
我在尝试进行电子邮件/密码身份验证时遇到了相同的错误,并浪费了几个小时,最后才意识到我没有在firebase帐户中启用电子邮件/密码身份验证。
答案 12 :(得分:0)
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会查找至少包含6个字符以上的密码。
您可以在此处看到一些示例:https://github.com/firebase/quickstart-android/tree/master/auth
答案 13 :(得分:0)
这可能是由于测试设备上的Google Play服务版本不兼容。
如果它是模拟器,请尝试切换到另一张图像,并检查您是否使用最新版本的播放服务。
请注意,只有Android N(API 24)及更高版本才支持通过playstore更新播放服务。
答案 14 :(得分:0)
对我来说,我有这个堆栈跟踪
getGoogleApiForMethod()返回了Gms: com.google.firebase.auth.api.internal.zzak@a73de51
我忘记在Firebase控制台中启用Sign-In Provider
。在身份验证部分的登录方法标签下启用Phone Provider
后,我解决了该问题。
我也遇到另一种相同的错误
getGoogleApiForMethod()返回了Gms: com.google.firebase.auth.api.internal.zzak@a73de51 I / flutter(2870): 提供的电话号码格式不正确。
最初,我只发送不带国家代码的手机号码。然后,我刚发送了带有国家代码的电话号码。
例如:+91 8811111111
效果很好。
答案 15 :(得分:0)
在我看来,这是一个非常愚蠢的问题,我的移动互联网无法正常工作。
答案 16 :(得分:0)
我在这个上损失了几个小时,所以让我分享一下我的经验。
Gms代表"Google Mobile Services”,它基本上是Google开发的Android的附加API,可连接到Google提供的一系列服务。 如果您使用flutter,则可能是由您使用的flutter包(例如firebase_auth,flutter_facebook_login或/和google_sign_in)包装的。
该错误有时可能是由更高级别的组件处理的,因此,如果您遇到该错误,并不表示您的配置错误或无法正常工作。 就我而言,使用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....
我的代码中有一个飞镖调用print(fireUser);
,因此我们认为它是成功的。
但是在Facebook Auth的情况下,我只是遇到了这个问题,此后什么也没有发生,但是在Facebook服务器端,登录成功了,因为我可以在Facebook开发控制台中看到事件。 / p>
info flutter.tools W/BiChannelGoogleApi( 4106): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzak@8116b2c
由于日志中没有其他内容,因此在此过程中有些卡住了。
我的问题是我将两个应用程序App Id和Secret混合在一起。有时我很头脑清醒,但问题是没有零警告或特定错误,所以这里列出了Firebase和其他插件可能失败的事情:
在Facebook Auth的特定情况下(我发现Google登录更容易集成):
希望这会有所帮助
答案 17 :(得分:0)
我遇到了这个错误,但是发生了,因为我试图在我的应用程序上创建一个使用相同电子邮件的帐户,我不得不从数据库和身份验证中删除该帐户。
我返回的代码与您的代码有些不同。
[FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzal@**5bfaa19**