Ответ прост - либо используйте следующую функцию для задачи, которую вы пытаетесь достичь -
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).
Надеюсь, это поможет!