Google Firebase, как отлавливать определенные ошибки исключений аутентификации - Unity - PullRequest
0 голосов
/ 29 октября 2018

-Как отловить ошибки исключения Auth - Unity -Как поймать, если пользователь / электронная почта существует - Unity -Где найти список кодов ошибок исключений Auth - Unity

* Я нашел много ответов для Android, поэтому решил наконец написать свое решение для Unity.

1 Ответ

0 голосов
/ 29 октября 2018

Ответ прост - либо используйте следующую функцию для задачи, которую вы пытаетесь достичь -

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")) - Другой возможный способ - найти код ошибки в списке. -

Список кодов ошибок Auth FOR UNITY Все исключения относятся к классу Firebase.Auth.AuthError, их можно увидеть либо в редакторе кода, либо на веб-сайте Firebase в разделе - Unity - Firebase.Auth - Overview (в разделе AuthError).

Надеюсь, это поможет!

...