대부분의 Firebase Auth 함수들은 ContinueWithOnMainThread(task => {}); 로 예외처리를 한다.
if (task.IsCanceled)
{
// 취소
return;
}
if (task.IsFaulted)
{
// 실패
return;
}
// 성공
크게 3가지로 취소, 실패, 성공으로 나누는데 실패시 task.Exception 에 실패 정보가 담긴다.
만약에 실패 시 어떤 이유로 실패한 지를 구분하는 팝업이 필요하다면
task.Exception.Message 메시지로 알 수도 있지만, 파이어 베이스 API를 보면 에러코드가 있어서
에러코드를 사용하여 swtich 문으로 구분하는 방법을 찾아봤다.

FirebaseException fe1 = (FirebaseException)task.Exception.InnerException;
FirebaseException fe2 = task.Exception.InnerException as FirebaseException;
에러코드를 알기 위해서는 Exception 타입인 task.Exception.InnerException 을 다운캐스팅해야 한다.


FirebaseException 클래스는 Exception 클래스를 상속받고 있어서 다운캐스팅이 가능하고,
다운캐스팅을 하면 ErrorCode 프로퍼티에 접근해서 실패 시 에러코드에 따라 다른 팝업을 띄울 수 있다.


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