2016-06-22 3 views
5

이전 문서에 따르면 firebase은 인증 오류를 코드를 제공하는 firebase 오류로 제공하지만 새로운 firebase 9.0.2에서는 FirebaseAuthException에 캐스팅 할 수 있으며 getCode는 있지만 문자열 만 예외입니다. 이제 firebase에서 가능한 모든 오류를 얻고 싶습니다. 시도했지만 해결책을 찾지 못했습니다. Ios는 오류 섹션을 처리하고 안드로이드가 아닌 코드 (int)에 오류를 제공합니다. 도와주세요. FirebaseAuth에있는 모든 가능한 오류를 받고 미리Firebase 9.0.2 인증 오류 코드

답변

3

에 고맙습니다 당신은 같은 것을 수행 할 수 있습니다

private void handleAuthenticationException(@NonNull Exception exception) { 
    if (exception instanceof FirebaseAuthUserCollisionException) { 
     if (((FirebaseAuthUserCollisionException) exception).getErrorCode().equals("ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL")) { 
      //do something... 
     } 
    } 
    // Other relevant exceptions for you... 
} 

을 그리고이처럼 OnFailureListener에서이 메소드를 호출

firebaseAuth.signInWithCredential(credential). 
    .addOnSuccessListener(/*Your code here!*/) 
    .addOnFailureListener(this, new OnFailureListener() { 
     @Override 
     public void onFailure(@NonNull Exception exception) { 
      handleAuthenticationException(exception); 
     } 
    ); 

FirebaseAuthException을 확인하시기 바랍니다 자세한 내용은 설명서를 참조하십시오.

+0

그래, 나도 이것을 좋아하지 만 사용하기에는 유연성이 없다. 이전 버전과 ios에는 정수 i 코드를 반환하는 FirAuthError가 있습니다. 그래서 나는 그런 해결책을 기대하고있었습니다. 어쨌든 응답 주셔서 감사합니다. –

1

오류가 발생할 수있는 곳이라면 어디든지 코드를 따라하여 토스트하려고 시도 할 수 있습니다.

Toast.makeText(YourActivity.this, ((FirebaseAuthException) task.getException()).getMessage(), Toast.LENGTH_SHORT).show(); 
+0

이것이 어떻게 작동하며 질문에 답하는 이유를 설명하십시오. –

+0

감사! 나는이 해결책을 찾고 있었다 :) –