2 回答

TA贡献1893条经验 获得超10个赞
这应该可以做到:
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();
}
else {
if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
Toast.makeText(SignUpActivity.this, "toast1." + task.getException(),
Toast.LENGTH_SHORT).show();
}
else if (task.getException() instanceof FirebaseAuthUserCollisionException) {
Toast.makeText(SignUpActivity.this, "toast2." + task.getException(),
Toast.LENGTH_SHORT).show();
}
startActivity(new Intent(SignUpActivity.this, MainActivity.class));
finish();
}
}
});
因此,您检查任务是否成功,如果没有成功,则在开始注册活动和完成此活动之前打开错误类型并显示相应的 toast。

TA贡献1890条经验 获得超9个赞
首先,您只需要一个条件,例如task.isSuccessful()。
你可以这样做:
if(task.isSuccessful()) {
try {
throw task.getException();
} catch(FirebaseAuthInvalidCredentialsException e) {
/*Toast here*/
} catch(FirebaseAuthUserCollisionException e) {
/*Toast here*/
} catch(...) ...
}
和
...
throw task.getException();
...
你将抛出特定的异常并使用
} catch(FirebaseAuthInvalidCredentialsException e) {
/*Toast here*/
}
您将捕获特定的异常来处理该异常并执行您想要的操作,在您的情况下,您将编写代码以在 catch 语句中显示 toast。
请记住捕获所有异常,否则当引发未处理的异常时,您的应用程序将崩溃。
您还可以处理通用异常:
if(task.isSuccessful()) {
try {
throw task.getException();
} catch(FirebaseAuthInvalidCredentialsException e) {
/*Toast here*/
} catch(FirebaseAuthUserCollisionException e) {
/*Toast here*/
} catch(Exception e) {
/*Handle generic exception*/
}
}
再见
添加回答
举报