我正在尝试在 Android 上使用 Firebase 创建一个登录和注册页面,我可以注册用户但不能登录,我可以在数据库中看到注册用户。登录方法总是转到 else 部分。这是代码
mLogin_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String email = mLoginEmail.getEditText().toString();
String password = mLoginPassword.getEditText().toString();
if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(password)){
mLoginProgress.setTitle("Loggin In");
mLoginProgress.setMessage("Please Wait!");
mLoginProgress.setCanceledOnTouchOutside(false);
mLoginProgress.show();
loginUser(email, password);
}
}
});
}
private void loginUser(String email, String password) {
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
mLoginProgress.dismiss();
Intent mainIntent = new Intent(LoginActivity.this, MainActivity.class);
mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(mainIntent);
finish();
} else{
mLoginProgress.hide();
Toast.makeText(LoginActivity.this, "nope, skipping to else", Toast.LENGTH_SHORT).show();
}
}
});
}
}
最佳答案
试试这个:
else{
mLoginProgress.hide();
Toasty.error(getApplicationContext(), "Authentication failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
把你的toast换成上面的toast就能知道为什么要转到else语句了。
改变这个:
String email = mLoginEmail.getEditText().toString();
String password = mLoginPassword.getEditText().toString();
为此:
String email = mLoginEmail.getText().toString();
String password = mLoginPassword.getText().toString();
关于java - Firebase signInWithEmailAndPassword 总是跳到其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48748161/