나는 이미 이메일 제공 업체를 통해 등록 된 동일한 이메일에 대한 구글 공급자에 로그인 할 수 있었다 : 암호가 잘못 또는이다 사용자에게는 암호가 없습니다..... "이메일 주소 당 하나 개의 계정이"당신이 동일한 이메일 주소로 여러 계정을 허용하지 않는 경우에 사용하여, 사용자는 새 계정을 만들 수 없습니다 그와 Google 계정을 사용 표지판 이미 주소가 인 이메일 주소 [email protected]은 이메일 주소 [email protected] 및 비밀번호를 사용하여 로그인하는 계정입니다. 구글 공급자가 이메일 제공 업체를 교체하고, 후자는 다음 FirebaseAuthInvalidCredentialsException로 로그인하지 않도록 FirebaseAuthInvalidCredentialsException
단계 재현 :
로그인을 이메일 제공 업체에 -> 로그 아웃을 -> 구글의 제공으로 로그인 ->
을 기본적으로 로그 아웃 1 개의 프로 바이더를 다른 프로 바이더와 옮겨 놓는 것을 허가하지 말아주세요. FirebaseAuthUserCollision 예외 : 이메일 주소는 이미 다른 계정에서 사용 중입니다.
내가 /에 표적을 사용하는 일부 코드 아웃 :
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();
}
감사합니다!
많은 코드가 여기에 달려 있습니다. 당신이 공유 할 수있는 최소한이지만 완성 된 것은 무엇입니까? –
몇 가지 코드와 몇 가지 설명이 추가되었습니다. –