[英]Error while geting Firebase Phone Auth OTP
I am trying to implement Firebase Phone Verification.我正在尝试实施 Firebase 电话验证。 I have enabled phone verification on firebase console.
我在 firebase 控制台上启用了电话验证。 I have generated keystore and added the SHA signatures to the console.
我已生成密钥库并将 SHA 签名添加到控制台。
dependencies:依赖项:
dependencies {
def multidex_version = "2.0.1"
implementation platform('com.google.firebase:firebase-bom:26.0.0')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.google.firebase:firebase-analytics'
implementation "androidx.multidex:multidex:$multidex_version"
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-core'
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
}
phone_verification.dart phone_verification.dart
await FirebaseAuth.instance.verifyPhoneNumber(
phoneNumber: '+1234567890',
verificationCompleted: (PhoneAuthCredential credential) {
print('verificationCompleted');
},
verificationFailed: (FirebaseAuthException e) {
print('verificationFailed');
if (e.code == 'invalid-phone-number') {
print('The provided phone number is not valid.');
}
else {
print('Some error occoured: $e');
}
},
codeSent: (String verificationId, int resendToken) async {
print('codeSent');
// Update the UI - wait for the user to enter the SMS code
String smsCode = '123456';
// Create a PhoneAuthCredential with the code
PhoneAuthCredential phoneAuthCredential = PhoneAuthProvider.credential(verificationId: verificationId, smsCode: smsCode);
},
timeout: const Duration(seconds: 60),
codeAutoRetrievalTimeout: (String verificationId) {
print("Timeout: $verificationId");
},
);
When the above block is executed following error is received.执行上述块时,会收到以下错误。 Console Output:
控制台 Output:
E/FirebaseAuth: [GetAuthDomainTask] Error getting project config. Failed with {
"error": {
"code": 400,
"message": "INVALID_CERT_HASH",
"errors": [
{
"message": "INVALID_CERT_HASH",
"domain": "global",
"reason": "invalid"
}
]
}
}
400
V/FA: Recording user engagement, ms: 1165
E/zza: Failed to get reCAPTCHA token - calling backend without app verification
@CubeRootX and @user13864571 @CubeRootX 和 @user13864571
Your problem related to SHA1 and SHA256 keys.您的问题与 SHA1 和 SHA256 密钥有关。 You have to add them to authenticate your certs.
您必须添加它们以验证您的证书。
Goto去
You can get keystores from gradle like this.您可以像这样从 gradle 获取密钥库。
./gradlew signingReport
./gradlew 签名报告
Read this for more information: https://firebase.google.com/docs/auth/android/phone-auth#enable-app-verification阅读更多信息: https : //firebase.google.com/docs/auth/android/phone-auth#enable-app-verification
在 Firebase 控制台中的身份验证下启用电话选项
Error 400 means bad request, it can be due to any of the following three reasons:-错误 400 表示请求错误,可能是由于以下三个原因之一:-
Open your project in firebase console -> Go to project setting -> Click on add fingerprint (at the bottom of the page) -> Add the SHA-1 and SHA-256 values there.在 firebase 控制台中打开您的项目 -> 转到项目设置 -> 单击添加指纹(在页面底部)-> 在那里添加 SHA-1 和 SHA-256 值。 Image for reference
图片供参考
You can get the SHA values of your android studio project as follows:-您可以按如下方式获取 android studio 项目的 SHA 值:-
Click on gradle on top right side -> task -> android -> signingReport -> Get the SHA values at the bottom after running signingReort Image for reference点击右上角的gradle->任务->android->signingReport->运行signingReort后获取底部的SHA值,供参考
Follow the documentation if issue in not resolved.如果问题未解决,请按照文档进行操作。
I have been stuck here for a week only to find a key I was using was restricted to another app and was therefore failing when trying to use it in my app.我被困在这里一个星期才发现我使用的密钥仅限于另一个应用程序,因此在我的应用程序中尝试使用它时失败。 So I first removed the restriction in the credentials tab in Android device verification and everything went back to normal
所以我首先取消了Android设备验证中凭据选项卡中的限制,一切都恢复了正常
We need to add one extra step to @Anat Bharti Answer: Enable GCS Device Verification API on Your Project我们需要向@Anat Bharti 回答添加一个额外的步骤:在您的项目上启用 GCS 设备验证 API
Enable GCS Device Verification API on Your Project.在您的项目上启用 GCS 设备验证 API。 That solves Everything, You not even asked to Verify capcha on your Physical device.
这解决了一切,你甚至没有要求在你的物理设备上验证验证码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.