手机验证错误

时间:2018-05-18 10:37:32

标签: android authentication

我为firebase phone auth编写了代码,没有发生错误。但当我执行应用程序并输入数字时,我得到验证失败.pls帮助我 我甚至连接到firebase proj并启用了手机并且还编写了SHA证书 我的主要活动代码 -

公共类MainActivity扩展了AppCompatActivity {

EditText phone,vcode;
TextView msg;
Button getcode,verify;
private FirebaseAuth mAuth;
private String mVerificationId;
private PhoneAuthProvider.ForceResendingToken mResendToken;
private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    phone = findViewById(R.id.phone);
    vcode = findViewById(R.id.code);
    getcode = findViewById(R.id.getcode);
    verify = findViewById(R.id.verify);
    msg = findViewById(R.id.msgtxt);
    mAuth = FirebaseAuth.getInstance();



    mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {

        @Override
        public void onVerificationCompleted(PhoneAuthCredential credential) {
            Toast.makeText(MainActivity.this, "Verified", Toast.LENGTH_LONG).show();
            vcode.setVisibility(View.GONE);
            verify.setVisibility(View.GONE);
            msg.setVisibility(View.VISIBLE);
            signInWithPhoneAuthCredential(credential);


        }


        @Override
        public void onVerificationFailed(FirebaseException e) {
            Toast.makeText(MainActivity.this, "Login Failed", Toast.LENGTH_LONG).show();

            if (e instanceof FirebaseAuthInvalidCredentialsException) {
                phone.setError("Invalid phone number");

            } else if (e instanceof FirebaseTooManyRequestsException) {


            }
        }


        @Override
        public void onCodeSent(String verificationId,
                               PhoneAuthProvider.ForceResendingToken token) {

            mVerificationId = verificationId;
            mResendToken = token;

        }
    };
}

public void GetCode(View view) {
PhoneAuthProvider.getInstance().verifyPhoneNumber(
        phone.getText().toString(),
        60,
        TimeUnit.SECONDS,
        this,
        mCallbacks);
phone.setVisibility(View.GONE);
getcode.setVisibility(View.GONE);
vcode.setVisibility(View.VISIBLE);
verify.setVisibility(View.VISIBLE);

}

public void verify(View view) {

    PhoneAuthCredential credential = PhoneAuthProvider.getCredential(mVerificationId, vcode.getText().toString());
    signInWithPhoneAuthCredential(credential);
}

private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>
                    () {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        FirebaseUser user=task.getResult().getUser();
                        startActivity(new Intent(MainActivity.this,MainActivity.class));
                        vcode.setVisibility(View.GONE);
                        verify.setVisibility(View.GONE);
                        msg.setVisibility(View.VISIBLE);
                        finish();
                    } else {
                        if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                            Toast.makeText(MainActivity.this, "Invalid code", Toast.LENGTH_LONG).show();
                        }
                    }
                }
            });

}

}

对于main2活动 -

公共类Main2Activity扩展了AppCompatActivity {

Button start;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    start = (Button) findViewById(R.id.start);


    start.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            Intent i = new Intent(Main2Activity.this, MainActivity.class);

            startActivity(i);
        }

    });
}

}

0 个答案:

没有答案
相关问题