我正在尝试将Firebase帐户链接到我的Google帐户和Facebook帐户,直到这里一切正常为止。这是我如何链接帐户的代码。
mAuth.getCurrentUser().linkWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Log.d(TAG, "linkWithCredential:success");
FirebaseUser user = task.getResult().getUser();
updateUI(user);
} else {
Log.w(TAG, "linkWithCredential:failure", task.getException());
Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
}
});
现在,我想获取,是我当前的帐户已链接到Facebook还是Google。是否可以获取此信息,还是应该将这些信息保存到数据库中?
答案 0 :(得分:2)
现在我想获得我的当前帐户是否已链接到facebook或google?
您可以检查提供商ID,以查看用户是否已通过Google或Facebook登录,如下所示:
FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
if (firebaseUser != null) {
for (UserInfo userInfo : firebaseUser.getProviderData()) {
if (userInfo.getProviderId().equals("google.com")) {
Log.d(TAG, "User is signed in with Google");
} else if(userInfo.getProviderId().equals("facebook.com")) {
Log.d(TAG, "User is signed in with Facebook");
}
}
}
您还可以使用以下代码:
List<? extends UserInfo> infos = user.getProviderData();
for (UserInfo ui : infos) {
if (ui.getProviderId().equals(GoogleAuthProvider.PROVIDER_ID)) {
Log.d(TAG, ui.getProviderId());
}
}