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
5
A
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.
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 :) –
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ź. –