我开始得到FirebaseAuthUserCollisionException
当我尝试登录时出现异常Facebook in my Android应用。
com.google.firebase.auth.FirebaseAuthUserCollisionException:一个
已存在具有相同电子邮件地址但不同的帐户
登录凭据。使用与此关联的提供商登录
电子邮件地址。
我在用Firebase处理注册,Facebook 提供“一键式”登录方法,使用com.facebook.login.widget.LoginButton
视图作为触发器。
这些登录方法已经可以使用了。我能够在 Facebook 上注册一个帐户,并使用相同的方法登录该帐户。但现在已经开始抛出这个异常了。
以下是我从 Facebook 注册帐户并继续登录的代码:
private void handleFacebookAccessToken(AccessToken token) {
final ProgressDialog dialog = new ProgressDialog(this);
dialog.show(getString(R.string.dialog_wait));
firebaseAuth.signInWithCredential(FacebookAuthProvider.getCredential(token.getToken()))
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@SuppressWarnings("ThrowableResultOfMethodCallIgnored")
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
dialog.close();
registerNewUserFromSocialLogin(firebaseAuth.getCurrentUser());
} else {
if(task.getException() instanceof FirebaseAuthUserCollisionException) {
//TODO: handle sign-in with different credentials
} else {
dialog.close();
LoginManager.getInstance().logOut();
Toast.makeText(LoginActivity.this,
R.string.error_login,
Toast.LENGTH_SHORT).show();
}
}
}
});
}
And my Gradle
当前使用库的文件:
compile 'com.google.firebase:firebase-auth:10.2.1'
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
所以我的问题是:我不知道如何处理FirebaseAuthUserCollisionException
例外。
StackOverflow 或 Firebase 文档中的解决方案都没有帮助我。我正在寻找一种解决方案,能够通过重复的凭据登录用户,但仍提供“一键式”登录方法。