Javascript RNfirebase电话验证不适用于版本apk
我已经使用rnfirebase实现了基于电话的身份验证 使用的图书馆:Javascript RNfirebase电话验证不适用于版本apk,javascript,react-native,firebase-authentication,Javascript,React Native,Firebase Authentication,我已经使用rnfirebase实现了基于电话的身份验证 使用的图书馆: "@react-native-firebase/app": "^10.3.0", "@react-native-firebase/auth": "^10.3.1", 代码段: 发送OTP的登录方法: newSignIn = async () => { let phoneNumber = this.state.phone;
"@react-native-firebase/app": "^10.3.0",
"@react-native-firebase/auth": "^10.3.1",
代码段:
发送OTP的登录方法:
newSignIn = async () => {
let phoneNumber = this.state.phone;
if (this.validatePhoneNumber(phoneNumber)) {
try {
const confirmation = await auth().signInWithPhoneNumber(phoneNumber);
ToastAndroid.show(JSON.stringify(confirmation), ToastAndroid.SHORT);
this.setState({ confirm: confirmation });
} catch (error) {
Alert.alert("Sorry!", "Error occurred. Check phone number.");
}
} else {
Alert.alert(
"Sorry!",
"Invalid Phone Number, make sure to add + country code."
);
}
}
当我在emulator上测试它时,它可以很好地测试电话号码。但是,当我创建发布版apk并在手机上安装该apk时,有时它会发送OTP并正常工作。但有时它不起作用,不发送任何OTP。我尝试过调试,发现它正在进入无限等待状态:
const confirmation = await auth().signInWithPhoneNumber(phoneNumber);
要解决此问题,您需要遵循以下步骤
[您的应用程序名称]>Tasks>android>signingReport
SHA-1
。它应该是任务首先输出的数据之一SHA-1
附加到firebase控制台中的SHA-1
列表中。现在应该有两个,一个用于调试,另一个用于发布googleservices.json
,并将其放在您的android/app
目录中问题不在于这些步骤,我遵循了它们,在已签名的apk上,它有时工作有时不工作。只需在应用程序配置中将ssh密钥添加到Firebase帐户。您可以使用cd android,然后在android文件夹中,只要在mac上运行gradlew signingreport,或在Windows上运行./gradlew signing report即可