Google Firebase如何捕获特定的Auth异常错误-Unity

时间:2018-10-28 21:06:49

标签: firebase unity3d exception firebase-authentication try-catch

-如何捕获Auth异常错误-Unity -如何捕获用户/电子邮件是否存在-Unity -哪里可以找到Auth例外错误代码列表-Unity

*我在Android上找到了很多答案,所以我决定最终为Unity编写解决方案。

1 个答案:

答案 0 :(得分:1)

答案很简单-在您要实现的任务上使用以下功能-

protected bool LogTaskCompletion(Task task, string operation)
{
    bool complete = false;
    if (task.IsCanceled)
    {
        Debug.Log(operation + " canceled.");
    }
    else if (task.IsFaulted)
    {
        Debug.Log(operation + " encounted an error.");
        foreach (Exception exception in task.Exception.Flatten().InnerExceptions)
        {
            string authErrorCode = "";
            Firebase.FirebaseException firebaseEx = exception as Firebase.FirebaseException;
            if (firebaseEx != null)
            {
                authErrorCode = String.Format("AuthError.{0}: ",
                  ((Firebase.Auth.AuthError)firebaseEx.ErrorCode).ToString());
            }
            Debug.Log("number- "+ authErrorCode +"the exception is- "+ exception.ToString());
            string code = ((Firebase.Auth.AuthError)firebaseEx.ErrorCode).ToString();
            Debug.Log(code);
        }
    }
    else if (task.IsCompleted)
    {
        Debug.Log(operation + " completed");
        complete = true;
    }
    return complete;
}

打印的输出Debug.Log(code)是您要查找的异常代码。现在您可以比较它-if (code.Equals("some specific exception...."))并用您的代码完成它。

示例

如何捕获用户/电子邮件是否存在 假设我们使用CreateUserWithEmailAndPasswordAsync注册了一个新用户,并且想捕获错误“电子邮件地址已被使用” 我们可以使用我的函数找出我们需要比较的错误代码,它将打印以输出“ EmailAlreadyInUse”。接下来,我要做的就是检查if ((code).Equals("EmailAlreadyInUse")) -另一种可能的方法是在列表中找到错误代码-

身份验证例外错误代码FOR UNITY的列表 所有异常都在类Firebase.Auth.AuthError下,您可以在代码编辑器中或在Unity-Firebase.Auth-概述(在AuthError下)的Firebase网站上查看它们。

希望有帮助!