У меня появляется сообщение об ошибке, подобное этому, если пользователь не подключен к inte rnet, я установил источник Source.Server:
не удалось получить документ с сервера. (Однако этот документ существует в локальном кэше. Запустите снова, не устанавливая SERVER для извлечения кэшированного документа.)
Я хочу написать собственное сообщение об ошибке, на самом деле я могу жестко закодировать сообщение что-то вроде этого
if (message == "failed to get document from server ........") {
showToast("showing my own message here")
}
, но оно может легко сломаться, если, например, firebase sdk изменит строку сообщения об ошибке. есть ли какой-либо код ошибки или ошибка перечисления, чтобы идентифицировать это?
вот код
fun getUserData(source: Source = Source.SERVER, userID: String, completion: (user: User?, errorMessage:String?) -> Unit) {
db.document("users/${userID}").get(source).addOnSuccessListener { documentSnapshot ->
if (documentSnapshot == null || !documentSnapshot.exists()) {
completion(null,"Account is not found")
return@addOnSuccessListener
}
val userData = documentSnapshot.data ?: return@addOnSuccessListener
val user = User(userData)
completion(user,null)
}.addOnFailureListener {
completion(null,it.localizedMessage) // error message comes from here
}
}