私はGoogleに登録しました。その後、ログアウトしてFacebookと同じメールアドレスを使用してログインしようとしました。私が予想したように、ユーザーはすでにエラーを登録しています。私がエラーを受け取ったとき、私はFacebookから得たlinkWithCredantialsメソッドに資格を与えました。もちろん私も持っていますgetCurrentUserログインしているユーザーは誰もいないので、ここではnullエラーです。認証プロバイダをいつリンクすればいいですか?そして、私の場合、認証プロバイダをログインなしでリンクしたいのです。出来ますか?私たちは、Android用のFirebaseでユーザーログインなしで認証プロバイダをリンクできます
P .:私の英語には申し訳ありません。ここで
は私の例である:
private void handleFacebookAccessToken(final AccessToken token) {
Log.d(TAG_FACEBOOK, "handleFacebookAccessToken:" + token);
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
final AuthCredential linkCredential = credential;
mAuth.signInWithCredential(credential)
.addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG_FACEBOOK, "signInWithCredential:onComplete:" + task.isSuccessful());
if (task.isSuccessful()) {
replaceFragment(new ProfileFragment());
} else {
toast("Facebook authentication failed.");
}
}
}).addOnFailureListener(getActivity(), new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
if (e.getMessage().contains("account already exists")) {
//**here**
mAuth.getCurrentUser().linkWithCredential(linkCredential)
.addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d(TAG_FACEBOOK, "linkWithCredential:onComplete:" + task.isSuccessful());
if (!task.isSuccessful()) {
}
}
});
}
}
});
}