我正在尝试实现Firebase电话验证。我已经在Firebase控制台上启用了电话验证。我已经生成了密钥库并将SHA签名添加到控制台。
相关性:
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'
}
字符串
电话验证.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");
},
);
型
当执行上面的块时,收到以下错误。控制台输出:
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
型
5条答案
按热度按时间bkhjykvo1#
此问题与SHA1和SHA 256密钥有关。您必须添加它们来验证证书。
后藤
你可以像这样从gradle获得密钥库。
./gradlew signingReport
更多信息请阅读:https://firebase.google.com/docs/auth/android/phone-auth#enable-app-verification
wpx232ag2#
错误400意味着错误请求,它可能是由于以下三个原因之一:
1.检查firebase控制台中是否启用了电话认证选项。启用它。
1.检查Google cloud console中是否启用了Android设备检查API。启用它。
1.检查SHA-1和SHA-256是否已添加到您的firebase项目中。添加如下:
在firebase控制台中打开你的项目->转到项目设置->点击添加指纹(在页面底部)->在那里添加SHA-1和SHA-256值。
x1c 0d1x的数据
您可以获取Android Studio项目的SHA值,如下所示:
点击右上角的gradle-> task -> android -> signingReport ->运行signingReort
后获取底部的SHA值
如果问题未解决,请遵循文档。
wljmcqd83#
在Firebase控制台的身份验证下启用电话选项
nzk0hqpo4#
我在这里呆了一个星期,才发现我使用的一个密钥被限制在另一个应用程序中,因此在我的应用程序中尝试使用它时失败。所以我首先在Android设备验证的凭据选项卡中删除了限制,一切都恢复正常
w51jfk4q5#
我们需要在@Anat Bharti中添加一个额外的步骤答案:Enable GCS Device Verification API on Your Project
在您的项目上启用GCS设备验证API。这解决了所有问题,您甚至没有要求在物理设备上验证capcha。