【发布时间】:2019-09-19 18:33:20
【问题描述】:
我使用Firebase Auth 来管理我的登录和注册应用程序。
我想根据收到的异常添加 toast 消息。
例如,如果异常来自FirebaseAuthInvalidCredentialsException,我想敬酒一条消息。如果是来自FirebaseAuthUserCollisionException,那么我想再用一个吐司。
我使用类似的东西:
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
LayoutInflater inflater = LayoutInflater.from( SignUpActivity.this );
View toastview = inflater.inflate( R.layout.toast_registered, null );
Toast toast = new Toast( SignUpActivity.this );
toast.setView( toastview );
toast.setGravity( Gravity.CENTER, 0, 3 );
toast.setDuration( Toast.LENGTH_LONG );
toast.show();
}
if (!task.isSuccessful()) {
Toast.makeText(SignUpActivity.this, "toast1." + task.getException(),
Toast.LENGTH_SHORT).show();
}
if (!task.isSuccessful()) {
Toast.makeText(SignUpActivity.this, "toast2." + task.getException(),
Toast.LENGTH_SHORT).show();
} else {
startActivity(new Intent(SignUpActivity.this, MainActivity.class));
finish();
}
}
});
所以基本上我需要在 if 条件中添加一些东西,但是我不确定是什么。
我看到catch 的用法,但我不认为是这种情况。
谢谢
【问题讨论】:
-
如果身份验证失败,您将在此处显示 2 个祝酒词。请参阅我的回答,它处理您在问题中陈述的每个失败案例一次且仅一次,并删除冗余检查。在我的回答中,我假设您只想在身份验证失败时启动 SignupActivity。
标签: java exception firebase-authentication