... jeśli nie pozwalają wielu kont z tego samego adresu e-mail , użytkownik nie może utworzyć nowe konto, które znaki w użyciu konto Google z adres e-mail [email protected], jeśli istnieje już konto, które loguje się przy użyciu adresu e-mail [email protected] i hasło .FirebaseAuthInvalidCredentialsException przy użyciu „Jedno konto na adres e-mail”
byłem w stanie zalogować się z dostawcą Google dla tego samego e-mail, który został już zarejestrowany przez dostawcę usług poczty elektronicznej, więc operator Google otrzymuje dostawcy poczty i ostatnia wtedy nie logować się przy FirebaseAuthInvalidCredentialsException: hasło jest nieprawidłowe lub użytkownik nie ma hasła..
Kroki do odtworzenia:
Zarejestruj się z dostawcą mail -> Wyloguj -> Zaloguj się z dostawcą Google -> Wyloguj
Zasadniczo nie powinno to umożliwiać zastąpienia jednego dostawcy innym i rzucać FirebaseAuthUserCollision Wyjątek: adres e-mail jest już używany przez inne konto.
Niektóre kod, który używam na Zarejestruj się/Zarejestruj się:
public void signUpEmail(String email, String password) {
mFirebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, task -> {
if (!task.isSuccessful()) {
Log.e("signUpWithEmail", task.getException());
}
});
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mFirebaseAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Log.e("signInWithCredential", task.getException());
}
}
});
}
public void signInEmail(String email, String password) {
mFirebaseAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, task -> {
if (!task.isSuccessful()) {
Log.e("signInWithEmail", task.getException());
}
});
}
public void signOut() {
Auth.GoogleSignInApi.signOut(mGoogleApiClient);
mFirebaseAuth.signOut();
startSignInActivity();
}
Dziękujemy!
Wiele prawdopodobnie zależy od kodu tutaj. Coś minimalnego, ale kompletnego, które możesz udostępnić? –
Dodano kod i kilka wyjaśnień. –