1
我註冊了Google。然後我註銷並嘗試使用與Facebook相同的電子郵件地址登錄。正如我所料,用戶已經註冊了錯誤。當我收到錯誤信息時,我向linkWithCredantials提供了我從Facebook獲得的方法的憑證。當然,我也得到了getCurrentUser這裏的空錯誤,因爲任何用戶登錄。我不明白,我什麼時候會鏈接auth提供程序?而我的情況下,我想鏈接auth提供商與登出。可能嗎?我們可以在沒有用戶登錄的情況下將驗證提供商鏈接到Android版的Firebase:
對話:對不起,我的英語。
這是我的例子:
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()) {
}
}
});
}
}
});
}