我已经使用 rnfirebase 实现了基于电话的身份验证。
使用的库:
"@react-native-firebase/app": "^10.3.0",
"@react-native-firebase/auth": "^10.3.1",
代码片段:
发送动态密码的登录方法:
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."
);
}
}
当我在模拟器上测试它时,它可以很好地测试电话号码。但是当我创建发行版 apk 并在我的手机上安装该 apk 时,有时它会发送 OTP 并且工作正常。但有时它不起作用,不发送任何 OTP。我已经尝试调试并观察到它正在进入无限在线等待:
const confirmation = await auth().signInWithPhoneNumber(phoneNumber);
答案 0 :(得分:-1)
要解决此问题,您需要按照以下步骤操作
[your app name] > Tasks > android > signingReport
的签名报告SHA-1
。它应该是任务输出的第一个。SHA-1
附加到 Firebase 控制台中的 SHA-1
列表中。您现在应该有 2 个,一个用于调试,另一个用于发布。google-services.json
并将其放在您的 android/app
目录中。