Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RNfirebase电话验证不适用于版本apk_Javascript_React Native_Firebase Authentication - Fatal编程技术网

Javascript RNfirebase电话验证不适用于版本apk

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;

我已经使用rnfirebase实现了基于电话的身份验证

使用的图书馆:

"@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);

要解决此问题,您需要遵循以下步骤

  • 开放安卓工作室
  • 单击右侧的渐变任务栏
  • 双击signingReport from
    [您的应用程序名称]>Tasks>android>signingReport
  • 注意生成的变量:Release
    SHA-1
    。它应该是任务首先输出的数据之一
  • 将此
    SHA-1
    附加到firebase控制台中的
    SHA-1
    列表中。现在应该有两个,一个用于调试,另一个用于发布
  • 下载最新的
    googleservices.json
    ,并将其放在您的
    android/app
    目录中
  • 重建发布应用程序

  • 问题不在于这些步骤,我遵循了它们,在已签名的apk上,它有时工作有时不工作。只需在应用程序配置中将ssh密钥添加到Firebase帐户。您可以使用cd android,然后在android文件夹中,只要在mac上运行gradlew signingreport,或在Windows上运行./gradlew signing report即可