相关疑难解决方法(0)

Firebase电话身份验证错误:SMS代码已过期

根据文档实施FireBase手机身份验证后,我遇到了一些问题.

  1. 有些数字无法通过身份验证:我使用Airtel作为我的服务提供商.

在日志中,我可以确认代码已经发送但我没有在手机上收到它:

D/PhoneAuthenticating:onCodeSent:AM5PThBss5tbYdpNW5R9Q7o8zOYeHvd7lnZ1KBlS ...

  1. 切换到另一个运营商,我可以收到代码,但之后它说SMS代码在尝试验证后立即过期.我做了更多尝试,结果是一样的

W/PhoneAuthenticating:signInWithCredential:失败com.google.firebase.auth.FirebaseAuthInvalidCredentialsException:短信代码已过期.请重新发送验证码以重试.来自com.google.android.gms.internal.mg.zz上的com.google.android.gms.internal.mg.zz(未知来源)com.google.android.gms.internal.mg. (未知来源)com.google.android.gms.internal.oc.onFailure(未知来源)位于android.os.Binder.execTransact(Binder)的com.google.android.gms.internal.nj.onTransact(未知来源)的.java:446)

抛出此异常:

FirebaseAuthInvalidCredentialsException

在firebase中,代码到期时间超过3599秒.验证所需的时间不到一分钟

android firebase firebase-authentication

6
推荐指数
2
解决办法
4135
查看次数

Firebase Auth SMS 验证码用于创建电话身份验证

我使用firebase构建react native,并使用插件react-native-firebase。我实现了 firebase auth 电话,当我将短信代码发送到我的手机时,我得到了 2 个错误:

  1. 当我输入正确的短信代码时出现错误

用于创建手机认证凭证的短信验证码无效。请重新发送验证码短信

  1. 当我重新加载应用程序然后想再次输入代码时,我收到错误

短信代码已过期。请重新发送验证码重试

我该如何解决这些问题?另外,有内置发送重发短信吗?

那是我的代码

confirmPhone = async (phoneNumber) => {
    return new Promise((res, rej) => {
        firebase.auth().verifyPhoneNumber(phoneNumber)
            .on('state_changed', async (phoneAuthSnapshot) => {
                switch (phoneAuthSnapshot.state) {
                case firebase.auth.PhoneAuthState.AUTO_VERIFIED:
                    await this.confirmCode(phoneAuthSnapshot.verificationId, phoneAuthSnapshot.code, phoneAuthSnapshot)
                    res(phoneAuthSnapshot)

                    break

                case firebase.auth.PhoneAuthState.CODE_SENT:
                    // await userSettings.set(AUTH_KEYS.VERIFICATION_ID, phoneAuthSnapshot.verificationId)
                    UserStore.setVerificationId(phoneAuthSnapshot.verificationId)
                    res(phoneAuthSnapshot)
                    break

                case firebase.auth.PhoneAuthState.AUTO_VERIFY_TIMEOUT: // or 'timeout'
                    UserStore.setVerificationId(phoneAuthSnapshot.verificationId)
                    res(phoneAuthSnapshot)


                case firebase.auth.PhoneAuthState.ERROR:
                    UserStore.setErrorConfirmationCode(phoneAuthSnapshot.error)
                    rej(phoneAuthSnapshot)
                    break

                }
            })
    })
}

confirmCode = async (verificationId, code, phoneAuthSnapshot) => {
    UserStore.setCodeInput(code)
    try{
        const credential = …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-authentication

5
推荐指数
0
解决办法
1903
查看次数