我目前有这段代码:
if (!task.isSuccessful() && task.getException() != null) {
FirebaseCrash.report(task.getException());
Log.w(TAG, "signInWithCredential", task.getException());
Toast.makeText(SignUp.this, "Authentication failed: " + task.getException().getMessage(),Toast.LENGTH_LONG).show();
}
有时用户会收到FirebaseAuthUserCollisionException
,我想在switch
语句中检测到它,如下所示:
switch(task.getException()){
case /*I don't know what goes here*/:
//Whatever
}
但是当你阅读时,我不知道在case
陈述中要放什么。我该放什么?换句话说,FirebaseAuthUserCollisionException
位于何处,以便我可以访问它? FirebaseAuthUserCollisionException
只是一个课程,因此我目前无法对其进行任何操作。
答案 0 :(得分:1)
Firebase身份验证例外都源自FirebaseAuthException
,其getErrorCode()
方法。
所以:
if(task.getException() instanceof FirebaseAuthException){
FirebaseAuthException e = (FirebaseAuthException)task.getException();
switch (e.getErrorCode()) {
...
}
}
答案 1 :(得分:0)
尝试:
if(task.getException() instanceof FirebaseAuthUserCollisionException){
//whatever
}