android - Firebase电话号码认证,每次验证码都过期

标签 android react-native

我在我的应用程序中添加了 firebase 身份验证。如果我在手机中添加其他用户的电话号码,效果很好。但是,如果我添加我的电话号码,它会发送 OTP,但是当我每次输入该 OTP 时,它都会显示错误“短信代码已过期”。

有没有自动认证?有什么我想念的吗?

我使用下面的代码发送 OTP

 firebase.auth().signInWithPhoneNumber(this.state.countryCode + this.state.phoneNumber)
            .then(confirmResult => {


                this.setState({
                    progressVisible: false
                })

                console.log("confirmResult is " + confirmResult)

                AsyncStorage.setItem('CountryCode', this.state.countryCode);
                AsyncStorage.setItem('PhoneNumber', this.state.phoneNumber);


                this.props.navigation.navigate("OtpScreen", {
                    confirmResult, isConnected: this.state.isConnected
                })
            })

我使用下面的代码来验证 OTP

 this.state.confirmResult.confirm(this.state.otpText)
                .then(user => {

                    // this.setState({
                    //     progressVisible: false
                    // })
                    console.log("Debug starts, 2");
                    this.hitAuthApi()

                })
                .catch(error => {
                    this.setState({
                        progressVisible: false
                    })
                    setTimeout(() => {
                        Alert.alert("Error" + error);
                    }, 100)
                });

最佳答案

有一个用于自动登录的 firebase 内置监听器,需要在组件中初始化。它会在 android 中自动检测短信。

this.unsubscribe = firebase.auth().onAuthStateChanged((user) => {
            // alert(JSON.stringify(user))
            if (user) {


               //hit Api 
            } else {
                // User has been signed out, reset the state

            }
        });

关于android - Firebase电话号码认证,每次验证码都过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53078504/

相关文章:

android - 如何防止应用程序在按下设备后退按钮时关闭?

android - 从消息中获取返回数据到 Android 处理程序

javascript - `Firebase` 包被成功找到。但是,这个包本身指定了一个无法解析的 `main` 模块字段

Android:包含不滚动的textInput的ScrollView

android - 使用 expo build 读取 ECONNRESET

javascript - React Native `fetch` 不保留 cookie

java - Firebase 在每个循环后给出 null 值

java - 动态更新 fragment 调用

android - GCM 生产准备好了吗?我们现在应该开始使用它吗?

javascript - 初始渲染后更新 View