首页 > 解决方案 > 如何使用没有OTP的电话号码将用户注册到firebase?

问题描述

我正在尝试将带有电话号码的用户注册到 Firebase,但出现异常PlatformException(error, Cannot create PhoneAuthCredential without either verificationProof, sessionInfo, ortemprary proof., null)

是否可以仅使用电话号码注册用户而无需任何 OTP?

我试过下面的代码

 signIn()async{
    AuthCredential credential= PhoneAuthProvider.getCredential(
      verificationId: verificationId,
      smsCode: smsCode
    );
    await  firebaseAuth.signInWithCredential(credential).then((user){
       Navigator.of(context).pushReplacementNamed('/homepage');
         print('signed in with phone number successful: user -> $user');
    }).catchError((onError){
      print(onError);
    });
  }

标签: flutterdartfirebase-authentication

解决方案


该方法.signInWithCredential(实际登录用户)需要凭据类型的参数,这些凭据要么由案例.verifyPhoneNumber中的方法派生verificationCompleted(仅在 Android 中,它不会发送短信并自动验证电话号码,请注意不总是工作,你应该总是有一个 UI 后备)或者在codeSent它返回一个验证 ID 并发送 SMS 的情况下。这两个是你应该传递给函数的那个PhoneAuthProvider.getCredential​​。

在第一种情况下,您不需要调用该PhoneAuthProvider.getCredential方法,因为您已经有一个凭证对象。


推荐阅读