firebase authentication error in other languages

后端 未结 2 1294
抹茶落季
抹茶落季 2021-01-03 15:08

I am currently developing an app in Swift and I have linked firebase in order for users to signup and login. The app is supposed to be in Spanish but I can\'t find a way to

相关标签:
2条回答
  • 2021-01-03 15:40

    Here is an example, how you can make custom error descriptions for any kind of Error Type

    import Foundation 
    import Firebase
    
    extension AuthErrorCode {
        var description: String? {
            switch self {
            case .emailAlreadyInUse:
                return "Este correo ya está siendo usado por otro usuario"
            case .userDisabled:
                return "Este usuario ha sido deshabilitado"
            case .operationNotAllowed:
                return "Operación no permitida"
            case .invalidEmail:
                return "Correo electrónico no valido"
            case .wrongPassword:
                return "Contraseña incorrecta"
            case .userNotFound:
                return "No se encontró cuenta del usuario con el correo especificado"
            case .networkError:
                return "Promblema al intentar conectar al servidor"
            case .weakPassword:
                return "Contraseña muy debil o no válida"
            case .missingEmail:
                return "Hace falta registrar un correo electrónico"
            case .internalError:
                return "Error interno"
            case .invalidCustomToken:
                return "Token personalizado invalido"
            case .tooManyRequests:
                return "Ya se han enviado muchas solicitudes al servidor"
            default:
                return nil
            }
        }
    }
    
        extension FirestoreErrorCode {
            var description: String? {
                switch self {
                case .cancelled:
                    return "Operación cancelada"
                case .unknown:
                    return "Error desconocido"
                case .invalidArgument:
                    return "Argumento no valido"
                case .notFound:
                    return "No se encotró el documento"
                case .alreadyExists:
                    return "El documento que se pretende crear, ya existe"
                case .permissionDenied:
                    return "No tienes permisos para realizar esta operación"
                case .aborted:
                    return "Operación abortada"
                case .outOfRange:
                    return "Rango invalido"
                case .unimplemented:
                    return "Esta operación no ha sido implementada o no es soportada aún"
                case .internal:
                    return "Error interno"
                case .unavailable:
                    return "Por el momento el servicio no está disponible, intenta más tarde"
                case .unauthenticated:
                    return "Usuario no autenticado"
                default:
                    return nil
                }
            } }
    
    extension StorageErrorCode {
        var description: String? {
            switch self {
            case .unknown:
                return "Error desconocido"
            case .quotaExceeded:
                return "El espacio para guardar archivos ha sido sobrepasado"
            case .unauthenticated:
                return "Usuario no autenticado"
            case .unauthorized:
                return "Usuario no autorizado para realizar esta operación"
            case .retryLimitExceeded:
                return "Tiempo de espera excedido. Favor de intentar de nuevo"
            case .downloadSizeExceeded:
                return "El tamaño de descarga excede el espacio en memoria"
            case .cancelled:
                return "Operación cancelada"
            default:
                return nil
            }
        } }
    
    public extension Error {
        var localizedDescription: String {
            let error = self as NSError
            if error.domain == AuthErrorDomain {
                if let code = AuthErrorCode(rawValue: error.code) {
                    if let errorString = code.description {
                        return errorString
                    }
                }
            }else if error.domain == FirestoreErrorDomain {
                if let code = FirestoreErrorCode(rawValue: error.code) {
                    if let errorString = code.description {
                       return errorString
                    }
                }
            }else if error.domain == StorageErrorDomain {
                if let code = StorageErrorCode(rawValue: error.code) {
                    if let errorString = code.description {
                        return errorString
                    }
                }
            }
            return error.localizedDescription
        } }
    
    0 讨论(0)
  • 2021-01-03 15:47

    Firebase errors are not localized. You could request a feature for this via Firebase support.

    What you could do instead is create your own localized messages based on the error codes provided. This is what FirebaseUI does:

    • FirebaseUI-ios

    • FirebaseUI-web

    Or you could just simply use FirebaseUI-ios. It would save you a lot of time and effort.

    0 讨论(0)
提交回复
热议问题