2017-02-17 1 views
0

Ich frage mich, warum FirebaseAuthWeakPasswordException nie erwischt wird. Wann immer es WEAK_PASSWORD ist, wird die FirebaseException statt FirebaseAuthException oder FirebaseAuthWeakPasswordException geworfen. Also, ich kann nicht einmal mit getErrorCode() Methode überprüfen.`FirebaseAuthWeakPasswordException` Niemals erwischt

firebaseAuth.createUserWithEmailAndPassword(email, password) 
      .addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        if (task.isSuccessful()) { 
         // registered 
        } else { 
         try { 
          throw task.getException(); 
         } catch(FirebaseAuthWeakPasswordException e) { 
          passwordEditText.setError(getString(R.string.error_weak_password)); 
          passwordEditText.requestFocus(); 
         } catch(FirebaseException e) { 
          Log.e(TAG, e.getMessage()); 
         } 
        } 
       } 
      }); 

Wie kann ich wissen, ob es die WEAK_PASSWORD Ausnahme ist?

+0

Können Sie bestätigen, dass Sie versuchen, einen Benutzer mit einem Kennwort mit weniger als 6 Zeichen zu erstellen, und die 'FirebaseAuthWeakPasswordException' nicht abgefangen wird? – RamithDR

+0

Ich denke, es ist ein Firebase-Bug. 'FirebaseAuthInvalidCredentialsException' wird zurückgegeben und kann für eine fehlerhafte E-Mail-Adresse und' FirebaseAuthUserCollisionException' abgefangen werden, wenn der Benutzer bereits existiert, aber nicht 'FirebaseAuthWeakPasswordException' für ein schwaches Passwort. –

+0

'FirebaseAuthWeakPasswordException' ist an meinem Ende gefangen und Ihr Code ist mir ähnlich. Sie haben immer die Möglichkeit, eine Validierungsprüfung auch auf Client-Seite durchzuführen (überprüfen Sie, ob' password' weniger als 6 Zeichen lang ist). – RamithDR

Antwort

2

Ich stehe vor dem gleichen Problem. Ich verwende derzeit Firebase 10.2.4. Aus irgendeinem Grund wird eine Firebase-Ausnahme und keine FirebaseAuthWeakPasswordException ausgelöst. Meine Lösung bestand darin, die Länge des Passworts auf der Clientseite zu validieren, und wenn die Länge weniger als 6 Zeichen beträgt, zeige ich dem Benutzer einen Toast an.

Verwandte Themen