PhoneAuthProvider无法正常工作

时间:2017-09-11 16:39:53

标签: android android-studio firebase android-service firebase-authentication

您好我正在使用电话身份验证的Firebase身份验证方法,但是当我把那个方法放入时,PhoneAuthProvider给我的错误是无法解析符号:

  private void resendVerificationCode(String phoneNumber,
                                    PhoneAuthProvider.ForceResendingToken token) {
    PhoneAuthProvider.getInstance().verifyPhoneNumber(
            phoneNumber,        // Phone number to verify
            60,                 // Timeout duration
            TimeUnit.SECONDS,   // Unit of timeout
            this,               // Activity (for callback binding)
            mCallbacks,         // OnVerificationStateChangedCallbacks
            token);             // ForceResendingToken from callbacks
}

我也是

 PhoneAuthProvider.ForceResendingToken mResendToken;
 PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks;

我的Firebase版本,还添加了服务文件:〜

 compile 'com.google.firebase:firebase-auth:10.0.1'
 classpath 'com.google.gms:google-services:3.0.0'

那怎样才能解决这个问题

1 个答案:

答案 0 :(得分:1)

您必须初始化callbacks,可能是您,但您还没有共享代码。

PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks =new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
    @Override
    public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {

    }

    @Override
    public void onVerificationFailed(FirebaseException e) {

    }
};

除非您尝试重新发送验证码。您无需将token传递给此verifyPhoneNumber方法。

PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phoneNumber,        
        60,                 
        TimeUnit.SECONDS,   
        this,               
        mCallbacks,         
        token); // this token is not needed

使用此

PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phoneNumber,        // Phone number to verify
        60,                 // Timeout duration
        TimeUnit.SECONDS,   // Unit of timeout
        this,               // Activity (for callback binding)
        mCallbacks,         // OnVerificationStateChangedCallbacks
        );

通过这样做,我将验证码发送到我的手机。如果需要更多帮助,请分享用于电话验证的所有代码。