Как использовать expo-firebase-Reactionaptcha? - PullRequest
0 голосов
/ 15 апреля 2020

Expo недавно запустила библиотеку expo-firebase-recaptcha, и я пытаюсь реализовать ее в своем приложении. Повторная проверка происходит успешно, чтобы проверить, являюсь ли я роботом, однако я не получаю текстовое сообщение с кодом подтверждения. Что я делаю неправильно? Любая помощь будет оценена.

Вот фрагмент моего кода

    import * as firebase from "firebase/app";
    import "firebase/auth";
    import {
      FirebaseRecaptchaVerifierModal,
      FirebaseAuthApplicationVerifier
    } from "expo-firebase-recaptcha";


    var config = {
      apiKey: "",
      authDomain: "",
      databaseURL: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: "",
      appId: ""
    };
      if (!firebase.apps.length) {
      firebase.initializeApp(config);
      }
    function LoginScreen() {
    const recaptchaVerifier = React.createRef();

    async onSendOtp(){
        if(this.state.phone!="")
        {
          try{
              this.setState({Otp:!this.state.Otp})
              var phoneNumber = this.state.phone;
              console.log("Phone"+phoneNumber);
              const phoneProvider = new firebase.auth.PhoneAuthProvider();
              const verificationid = await phoneProvider.verifyPhoneNumber(
                phoneNumber,
                recaptchaVerifier.current
              );
              this.setState({
                verificationId:verificationid
              })
              console.log("Message sent"+this.state.verificationId);
          }catch(err){
            console.log("Error message"+err)
          }
        }
        else
        {
          Alert.alert("Enter phone number");
        }
    }
      return (
          <View style={{ width: "100%", flex: 1, paddingHorizontal: 30 }}>
            <Title>Login</Title>
            <FirebaseRecaptchaVerifierModal
              ref={recaptchaVerifier}
              firebaseConfig={config}
            />
            <View style={styles.inputContainer}>
              <Icon style={styles.inputIcon} name="mobile-phone"/>
              <TextInput style={styles.inputs}
                  placeholder="Phone number"
                  autoCapitalize="none"
                  keyboardType="numeric"
                  underlineColorAndroid='transparent'
                  maxLength={10}
                  onChangeText={(text)=>this.phonenumberchange(text)}/>
            </View>
            <TouchableHighlight style={[styles.buttonContainer, styles.signupButton]} onPress={() => this.onSendOtp()}>
              <Text id="sendcode" style={styles.signUpText}>SEND CONFIRMATION CODE</Text>
            </TouchableHighlight>
</View>  );
    }
...