首页 文章

Firebase:用户注册后如何进行电话号码验证?

提问于
浏览
2

所以我知道我可以使用电子邮件验证或电话号码验证,但我想要做的是在用户注册或登录后进行电话号码验证 . 如何连接这两种身份验证方法 . 最后,Firebase中是否有一项功能可以检查用户是否通过电话号码验证?谢谢 .

1 回答

  • 2

    即使用户已通过身份验证,您仍然可以使用firebase提供的APi来验证该号码 . 根据docs,仅当用户收到确认代码并生成 PhoneAuthCredential 时才会进行身份验证 . 如果你只想对手机进行验证,你可以简单地为回调 onVerificationCompleted 提供自定义反应 .

    通常你设置提供者:

    PhoneAuthProvider.getInstance().verifyPhoneNumber(
            phoneNumber,        
            60,                 
            TimeUnit.SECONDS,   
            this,               
            mCallbacks);
    

    并且您实现了一系列回调 .

    mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
    
        @Override
        public void onVerificationCompleted(PhoneAuthCredential credential) {
            //No need to authenticate again, just react to verified number
            //signInWithPhoneAuthCredential(credential);
        }
    
        @Override
        public void onVerificationFailed(FirebaseException e) {
    
            if (e instanceof FirebaseAuthInvalidCredentialsException) {
    
            } else if (e instanceof FirebaseTooManyRequestsException) {
    
            }
    
        }
    
        @Override
        public void onCodeSent(String verificationId,
                               PhoneAuthProvider.ForceResendingToken token) {
    
            mVerificationId = verificationId;
            mResendToken = token;
    
        }
    };
    

    根据您关于验证用户登录方式的第二个问题,您可以查看answer以了解如何检查firebase用户身份验证提供程序 .

    当用户登录时,您可以通过以下方式获取其电话号码(如果有)

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String number = user.getPhoneNumber();
    

相关问题