我为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);
}
});
}
}