android - 如何在firebase中获得与当前用户关联的帐户
问题描述
我正在尝试将我的 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。是否可以获得此信息,或者我应该将此信息保存到数据库中吗?
解决方案
现在我想知道,我当前的帐户是链接到 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());
}
}
推荐阅读
- swift - CoreML – 如何创建一个简单的 MLFeatureProvider 类
- python - 如何克服 python feedparser 模块中的不匹配标签错误
- r - 如何使用 R 的 grid.table() 根据单元格值更改字体颜色?
- node.js - 如何从节点模块读取文件?
- bash - 为什么我的 (centos) docker 容器不运行 /etc/bashrc?
- ros - 如何实现摄像头对飞行器的控制?
- oracle-adf - 根据条件以颜色显示日期
- drupal - Drupal 的带有段落和反向引用的搜索 API
- android - 前台与后台应用程序状态
- python - 循环中的Python唯一DF