Unity | 파이어베이스 비동기 함수 실패시 예외처리

Clean·2025년 7월 17일

Unity

목록 보기
22/24

오늘 배운 것

  • Firebase Auth 함수 실패 예외처리

Firebase Auth 함수 실패 예외처리

대부분의 Firebase Auth 함수들은 ContinueWithOnMainThread(task => {}); 로 예외처리를 한다.

if (task.IsCanceled)
{
	// 취소
    return;
}
if (task.IsFaulted)
{
	// 실패
    return;
}

// 성공

크게 3가지로 취소, 실패, 성공으로 나누는데 실패시 task.Exception 에 실패 정보가 담긴다.

만약에 실패 시 어떤 이유로 실패한 지를 구분하는 팝업이 필요하다면

task.Exception.Message 메시지로 알 수도 있지만, 파이어 베이스 API를 보면 에러코드가 있어서

에러코드를 사용하여 swtich 문으로 구분하는 방법을 찾아봤다.


FirebaseException 다운캐스팅

FirebaseException fe1 = (FirebaseException)task.Exception.InnerException;
FirebaseException fe2 = task.Exception.InnerException as FirebaseException;

에러코드를 알기 위해서는 Exception 타입인 task.Exception.InnerException 을 다운캐스팅해야 한다.


FirebaseException 클래스는 Exception 클래스를 상속받고 있어서 다운캐스팅이 가능하고,

다운캐스팅을 하면 ErrorCode 프로퍼티에 접근해서 실패 시 에러코드에 따라 다른 팝업을 띄울 수 있다.


또한 에러코드를 AuthError 열거형으로 형변환할 수 있어서 더 확실하게 에러코드를 구분할 수 있다.


0개의 댓글