Java 如何使用Kotlin识别AWS Amplify中的身份验证错误类型?
我想在用户使用Kotlin通过AWS Amplify登录时向用户显示不同的错误。这是我设置为Amplify.Auth.signIn()的最后一个参数: “error”是一个“Throwable”,我想将其转换为各种AWS异常,并检查转换是否成功。然而,所有AWS Amplify异常都基于Java版本的“Throwable”。有没有办法使这些强制转换工作,或者有没有另一种方法来识别Kotlin中的错误类型?方法中的最后一个参数的类型为输入 有 如中所示,我建议使用Java 如何使用Kotlin识别AWS Amplify中的身份验证错误类型?,java,amazon-web-services,kotlin,aws-amplify,Java,Amazon Web Services,Kotlin,Aws Amplify,我想在用户使用Kotlin通过AWS Amplify登录时向用户显示不同的错误。这是我设置为Amplify.Auth.signIn()的最后一个参数: “error”是一个“Throwable”,我想将其转换为各种AWS异常,并检查转换是否成功。然而,所有AWS Amplify异常都基于Java版本的“Throwable”。有没有办法使这些强制转换工作,或者有没有另一种方法来识别Kotlin中的错误类型?方法中的最后一个参数的类型为输入 有 如中所示,我建议使用when构造耗尽这些类型。释义:
when
构造耗尽这些类型。释义:
when(错误){
SessionUnavailableOfflineException->doSomething()是否可用
是否为InvalidAccountTypeException->doSomethingElse()
//等等。
}
您还可以通过以下方式检查活动身份验证会话中的错误:
Amplify.Auth.fetchAuthSession(
{结果->
val cognitoAuthSession=结果为AWSCognitoAuthSession
if(AuthSessionResult.Type.FAILURE==cognitoAuthSession.identityId.Type){
//做事
}
},
{error->Log.e(“AuthQuickStart”,error.toString())}
)
这是一种更优雅的检查其类型的方法,是的,谢谢。但假设我想检查“UserNotConfirmedException”,我只在消息中得到通知,但“error”是不可设置的。会放大.Auth.fetchAuthSession()来检查这样的错误吗?嘿@KapitaiN-你是对的,目前我们没有像你要识别的错误那样对错误进行分类,比如usernotconfirm、username不存在或密码错误。这是我们意识到的一个缺口,我们的待办事项中有需要解决的。@DavidDaudelin好的,谢谢你的帮助!那我就想办法了。
{ error ->
inputEmail.error = "Check if the e-mail is valid"
inputPassword.error = "Check if the password is valid"
})