我正在使用 Firebase Auth 构建登录流程,以使用电子邮件和密码对用户进行身份验证。登录时,有些事情可能会出错:给定的电子邮件地址不存在帐户,密码错误 (...)。
Firebase 是否返回任何错误代码以便我可以添加错误处理?我只找到了可用于错误处理的异常消息,但有什么方法可以使错误代码更整洁?我在 Firebase 官方文档中找不到任何内容。
auth.signInWithEmailAndPassword(email, password).addOnCompleteListener { task ->
if (task.isSuccessful) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithEmail:success")
}
}.addOnFailureListener { exception: Exception ->
when (exception.message) {
"There is no user record corresponding to this identifier. The user may have been deleted." -> // Handle error
"The password is invalid or the user does not have a password." ->// Handle error
else -> // Handle error
}
}
答案 0 :(得分:1)
Firebase 是否返回任何错误代码以便我可以添加错误处理?
当然可以。 FirebaseAuthException 类包含一个名为 getErrorCode() 的方法:
<块引用>返回一个错误代码,可以提供有关错误的更多信息。
除此之外,在上述文档中,您还会发现两个非常有用的部分:
<块引用>还有:
<块引用>因此您始终可以根据抛出的特定异常获取特定消息。
编辑:
<块引用>我想知道在哪里可以获得所有错误代码的列表。
Firebase 身份验证未提供完整的错误列表。链接的 answer 可能被认为有点旧,因为它是在 2016 年 7 月 7 日添加的。从那时起,Firebase Authentication SDK 发生了一些变化。如果您对错误代码感兴趣,您应该检查每种类型的异常。例如,FirebaseAuthException 的一个已知直接子类称为 FirebaseAuthInvalidUserException。在这个类中,你可能会看到一些错误代码:
因此,您拥有的最佳选择是查看每个特定类的内部。
这不仅在身份验证的情况下可用,它在所有其他 Exception 类的情况下都可用。例如,如果我们谈论 Cloud Firestore,相应的异常称为 FirebaseFirestoreException 并包含在带有错误代码的 enum 中。以下是值: