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

问题描述 投票:2回答:1

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

java android firebase firebase-authentication
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();
© www.soinside.com 2019 - 2024. All rights reserved.