如何将Firebase Exception转换为switch语句

时间:2016-09-07 15:25:05

标签: android firebase firebase-authentication

我目前有这段代码:

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只是一个课程,因此我目前无法对其进行任何操作。

2 个答案:

答案 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
}