2016-06-22 28 views
5

Według starych dokumentów firebase zapewnia błąd uwierzytelniania jako błąd firebase, który dostarcza w nim kod, ale w nowej wersji Firebase 9.0.2 będzie jedynym wyjątkiem, który może być przesyłany do FirebaseAuthException i ma kod get, ale ciąg. Teraz chcę uzyskać wszystkie możliwe błędy w firebase. Próbowałem, ale nie mogłem znaleźć żadnego rozwiązania. Ios ma sekcję błędów obsługi i podaje błąd w kodzie (int), a nie w systemie Android. Proszę pomóż. Niż z góryKody błędów uwierzytelniania Firebase 9.0.2

Odpowiedz

3

na uzyskanie wszystkich możliwych błędów w FirebaseAuth można zrobić coś takiego:

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... 
} 

I wywołanie tej metody z OnFailureListener tak:

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

Proszę sprawdzić FirebaseAuthException dokumentacja, aby uzyskać więcej informacji.

+0

Tak, też mi się to podobało, ale nie jest to rodzaj elastycznego w użyciu. Starsza wersja i ios mają FirAuthError, który zwraca kod i integer. Tak więc liczyłem na takie rozwiązanie. W każdym razie dzięki za odpowiedź. –

1

Możesz próbować Toast Error, podążając za kodem w dowolnym miejscu, które mogło być nie tak.

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

Wyjaśnij, jak to działa i dlaczego odpowiada na pytanie. –

+0

Dzięki! Szukałem tego rozwiązania :) –

Powiązane problemy