我想在我的SplashScreen活动中检查 ERROR_USER_DISABLED . 我很好地处理了登录,注册等所有其他事情,并很好地捕获其他FirebaseExceptions . 但不是在这里...如果我在我的应用程序中授权用户,之后我在FireBase Authentication控制台屏幕中禁用用户并重新启动应用程序我有错误 Exception ,而不是 FirebaseAuthInvalidUserException .

和那样的消息:

An internal error has occurred. [ {
    "error":{
        "code": 400,
        "message": "USER_DISABLED",
        "errors": [
            {
                "message": "USER_DISABLED",
                "domain": "global",
                "reason": "invalid"
            }
        ]
    }
} ]

但我想 grab FirebaseAuthInvalidUserException 和errorCode . 在其他地方我可以访问errorCode ...这里是简单的例外... =(

我剪切了功能代码并将其粘贴到此处 .

fun authCheck() {
        val currentUser = FirebaseAuth.getInstance().currentUser
        if (currentUser == null) {
            Log.d("***", "User not found")
            return
        }

        val task = currentUser.reload()

        task.addOnCompleteListener(OnCompleteListener {
            if (!it.isSuccessful) {
                try {
                    if(task.exception != null) {
                        throw task.exception!!
                    }
                    else {
                        Log.d("***", "Task is null")
                    }
                }
                catch(e: FirebaseAuthInvalidUserException) {
                    Log.d("***", e.errorCode)
                }
                catch(e: Exception) {
                    Log.d("***", e.message)
                }
            } else {
                Log.d("***", "Complete")
                listener.onComplete()
            }
        })
    }

我需要在此函数中捕获 ERROR_USER_DISABLEDERROR_USER_NOT_FOUNDERROR_USER_TOKEN_EXPIREDERROR_INVALID_USER_TOKEN .