如何在Unity上处理Firebase身份验证错误

J'h*_*ard 4 unity-game-engine firebase firebase-authentication

我根据该文档在Unity应用程序中创建了一个简单的密码登录名,并且工作正常,但是我想处理其他类型的错误,并且由于task.Exception不返回错误代码,因此我不知道如何继续。

我发现了这一点,但由于登录方法不同,它似乎不是相同的Firebase版本...

Mau*_*nes 5

Firebase具有AuthError枚举,可告诉您FirebaseException中每个ErrorCode的含义,文档位于此处:https ://firebase.google.com/docs/reference/unity/namespace/firebase/auth

要获取西班牙语错误消息,我正在这样做:

public static string GetErrorMessage(Exception exception)
{
    Debug.Log(exception.ToString());
    Firebase.FirebaseException firebaseEx = exception as Firebase.FirebaseException;
    if (firebaseEx != null)
    {
        var errorCode = (AuthError)firebaseEx.ErrorCode;
        return GetErrorMessage(errorCode);
    }

    return exception.ToString();
}

private static string GetErrorMessage(AuthError errorCode)
{
    var message = "";
    switch (errorCode)
    {
        case AuthError.AccountExistsWithDifferentCredentials:
            message = "Ya existe la cuenta con credenciales diferentes";
            break;
        case AuthError.MissingPassword:
            message = "Hace falta el Password";
            break;
        case AuthError.WeakPassword:
            message = "El password es debil";
            break;
        case AuthError.WrongPassword:
            message = "El password es Incorrecto";
            break;
        case AuthError.EmailAlreadyInUse:
            message = "Ya existe la cuenta con ese correo electrónico";
            break;
        case AuthError.InvalidEmail:
            message = "Correo electronico invalido";
            break;
        case AuthError.MissingEmail:
            message = "Hace falta el correo electrónico";
            break;
        default:
            message = "Ocurrió un error";
            break;
    }
    return message;
}
Run Code Online (Sandbox Code Playgroud)