2016-06-12 2 views
1

인증을 위해 새로운 Firebase SDK에서 오류를 처리하는 방법은 무엇입니까? 이전 버전에서는 OnAuthenticationError 메서드를 찾을 수 있고 FirebaseException 오류가 발생하지만 새 버전에서는 이러한 메서드가 표시되지 않습니다. 어떤 이유로 전자 메일 암호로 사용자를 만들면 예외가 발생합니다. 이 예외를 잡을 수있는 유일한 방법은 task.getException.getMessage()이며이 메시지를 통해 다양한 오류 메시지를 확인한 다음 차례대로 오류가 발생합니다. 더 좋은 방법을 제안하거나 뭔가를 놓치면 수정 해주세요.이메일로 사용자 생성시 Firebase 예외 처리

답변

1

새로운 Firebase에서 많은 메소드가 Task을 반환합니다. 이전에 JavaScript로 약속을 사용한 적이 있다면 매우 유사하다는 것을 알 수 있습니다.

  • 작업을 한 번 호출됩니다 성공 청취자는,
  • 작업을 한 번 호출됩니다 실패 리스너,
  • 실패 성공 :

    작업에

    , 몇 콜백을 얻을 수 있습니다 작업 한 번 호출됩니다 완료 청취자는, 그렇게, creating a user에 실패 찾고있는

  • 귀하의 경우에는

(성공적 여부를) 완료 :

auth.createUserWithEmailAndPassword(email, password) 
    .addOnFailureListener(new OnFailureListener() { 
     public void onFailure(@NonNull Exception e) { 
      Log.e(TAG, "Unable to create user", e); 
     } 
    }); 

예외는 당신이 그것에 getErrorCode()를 호출 할 수 있습니다 의미 FirebaseAuthException의 서브 클래스가 될 것입니다. 오류 코드가 반환됩니다. 이것은 실제로 문자열이지만 스위치 케이스에서 쉽게 캡처 할 수있는 형태 인 입니다.

완료 청취자를 사용하는 샘플의 경우 documentation on creating a user도 참조하십시오.

+0

감사합니다. onFailureListener를 onFailure 메소드에 추가하면 매개 변수 java 'Exception'을 얻습니다.이 메시지는이 오류 메시지를 처리 ​​할 수있는 모든 미리 정의 된 문자열을 반복해야합니다. 나는 오래된 firebase sdk에서 더 나은 방법을 찾고있었습니다. –

+0

나는 실제로 서명이 잘못되었다. 이제 Android Studio에서 편리하게 촬영했습니다. 2.x SDK에는 숫자 오류 코드가 있습니다. 모든 문자열 오류 코드를 처리하는 것은 크게 다르지 않습니다. –

0

주요 예외 : 답장을 보내

firebaseAuth.createUserWithEmailAndPassword(email, pass) 
     .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
      @Override 
      public void onComplete(@NonNull Task<AuthResult> task) { 
      if(task.isSuccessful()) 
       { 
       //--If success   
}else if (task.getException() instanceof FirebaseAuthUserCollisionException) 
{       
    //If email already registered. 

}else if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) { 
    //If email are in incorret format  

}else if (task.getException() instanceof FirebaseAuthWeakPasswordException) { 
     //if password not 'stronger'      
}else 
{ 
    //OTHER THING 
} 
} 
});