我在尝试登录之前检查EditText etEmailandetPass是否为空,但我不知道这是否会导致我使用 firebase 的 toast 消息出现问题task.getException().getMessage()
这是错误消息:方法调用“ getMessage”可能会产生'java.lang.NullPointerException'
我已经尝试将它从 else 语句中取出并移动它正在工作。我有一个SignUp.class按预期工作的firebase.getException().getMessage()TheSignUp.class不检查 EditTexts 是否为空,所以这可能与问题有关。
我创建了一个方法来根据 EditTexts 是否为空来返回 true 或 false(passStr 与etPass.getText().toString()if 语句中的第二个总是返回 true 或总是 false 相同,所以我这样做是为了让它更容易,因为我不知道最好的方法)。
public Boolean checkEmpty(){
status = false;
passStr = etPass.getText().toString();
emailStr = etEmail.getText().toString();
if((etPass.getText().toString().isEmpty() && etEmail.toString().isEmpty()) ||
(passStr.isEmpty()) || (emailStr.isEmpty()) ) {
status = false;
}
else{
status = true;
}
return status;
}
在它使用的 onCreate 方法内部
if(checkEmpty().equals(true)) {
firebaseAuth.signInWithEmailAndPassword(
etEmail.getText().toString(),
etPass.getText().toString())
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
//this starts activity if able to sign in
if (task.isSuccessful()) {
Toast.makeText(Login.this, "Login Successful",
Toast.LENGTH_LONG).show();
startActivity(new Intent(Login.this,
MainActivity.class));
}
else {
//if task unsuccessful it should show firebase toast messages
Toast.makeText(Login.this, task.getException().getMessage(),
Toast.LENGTH_LONG).show();
//this getMessage does not work due to error above
}
}
});
MM们
哆啦的时光机
POPMUISE
大话西游666
相关分类