我正在使用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
}
}
Firebase是否会返回任何错误代码,以便我可以添加错误处理?
当然可以。FirebaseAuthException类包含一个名为getErrorCode()的方法,该方法:
返回可能提供有关该错误的更多信息的错误代码。
除此之外,在上述文档中,您还将找到两个非常有用的部分:
- 已知的直接子类:
和:
- 已知的间接子类:
因此,您始终可以根据抛出的特定异常来获取特定消息。
编辑:
我想知道是从哪里获取所有错误代码的列表。
Firebase Auth没有提供完整的错误列表。链接的答案可能会有点旧,因为它在16年7月7日添加。从那时起,Firebase身份验证SDK进行了一些更改。如果您对错误代码感兴趣,则应检查每种类型的异常。例如,已知的FirebaseAuthException直接子类称为FirebaseAuthInvalidUserException。在此类中,您可能会看到一些错误代码:
因此,最好的选择是查看每个特定的类。
这仅在身份验证时不可用,在所有其他Exception类中均可用。例如,如果我们正在谈论Cloud Firestore,则相应的Exception称为FirebaseFirestoreException,并且其中包含带有错误代码的枚举。这些是值:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句