我在 Android 和 Firebase 身份验证功能上使用 Firebase。
我尝试 FirebaseAuth.signInWithEmailAndPassword
万一失败 我想知道登录过程失败的原因?
signInWithEmailAndPassword
方法有 addOnFailureListener
API。我可以在 onFailure
回调方法中捕获 Exception
(也许 FirebaseAuthException
)。
auth.signInWithEmailAndPassword(loginRequest.id, loginRequest.password)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
if (e instanceof FirebaseAuthException) {
((FirebaseAuthException) e).getErrorCode());
}
}
});
我想知道登录过程失败的原因。在 onFailure
。
我认为可以这样做:
e
实例类型检查(e instanceOfFirebaseAuthInvalidUserException
或FirebaseAuthInvalidCredentialsException
或,,,)e.getErrorCode()
我不想输入支票(它很脏)。
我更喜欢上面选择2中的方式。但是我找不到 e.getErrorCode()
返回值集合的定义。例如 ERROR_INVALID_EMAIL
, ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL
等(它们在哪里定义?)
我如何找出 Firebase 身份验证失败的原因?
原文由 yuki312 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有同样的疑问,我在他们的文档中找到了更多信息。
例如,在您使用此方法 createUserWithEmailAndPassword 时,您可以在其 文档页面上 看到以下异常:
例外情况:
如果密码强度不够,则抛出 FirebaseAuthWeakPasswordException 如果电子邮件地址格式不正确,则抛出 FirebaseAuthInvalidCredentialsException 如果已经存在具有给定电子邮件地址的帐户,则抛出
对于每个异常,还有一个文档页面,例如 FirebaseAuthUserCollisionException 的文档页面
在这里您可以看到不同的错误类型:
因此,如果您执行 getErrorCode() 并将字符串与这些常量中的任何一个进行比较,您就会确切地知道异常的原因。
希望能帮助到你。