其他语言的firebase身份验证错误

Posted

技术标签:

【中文标题】其他语言的firebase身份验证错误【英文标题】:firebase authentication error in other languages 【发布时间】:2018-01-14 23:45:45 【问题描述】:

我目前正在用 Swift 开发一个应用程序,并且我已经链接了 firebase 以便用户注册和登录。该应用程序应该是西班牙语,但我找不到将身份验证错误翻译成西班牙语的方法。 firebase 控制台或 plist 中是否有启用其他语言的选项。任何帮助表示赞赏。

【问题讨论】:

哪些错误,例如? i.stack.imgur.com/QBTeT.png 【参考方案1】:

这是一个示例,您可以如何为任何类型的错误类型进行自定义错误描述

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
     

【讨论】:

【参考方案2】:

Firebase 错误未本地化。你可以request a feature for this via Firebase support。

您可以做的是根据提供的错误代码创建自己的本地化消息。这就是 FirebaseUI 的作用:

FirebaseUI-ios

FirebaseUI-web

或者您可以简单地使用 FirebaseUI-ios。这将为您节省大量时间和精力。

【讨论】:

以上是关于其他语言的firebase身份验证错误的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 身份验证错误:未定义名称“身份验证”

Firebase Facebook 身份验证:格式错误或过期的身份验证凭据

密码注册后 Firebase 云功能出现未经身份验证的错误

使用其他API进行Firebase身份验证

更改了 Firebase 项目,它给了我错误 [ API 密钥无效。请传递有效的 API 密钥。 ] 身份验证期间

使用firebase电话身份验证验证失败