我是Firebase的新用户,我正在尝试将Firebase Auth api连接到我的应用程序中,我已经关注了来自Official site的更新文档的文档,所有工作都正常。
我已经成功完成了SignIn,并且在我的仪表板中,我在登录后获得了所有用户。
我的问题是我对从Firebase返回的各种ID感到困惑
代码如下:
for (UserInfo profile : user.getProviderData()) {
// Id of the provider (ex: google.com)
String providerId = profile.getProviderId();
//if Id of the provider is firebase it means we have successfully get back data after saving in firebbase hence we continue to app
if(providerId.equals("firebase")) {
// UID specific to the provider
Other.SavePref(this, "LoginToken", profile.getUid());
// Name, email address, and profile photo Url
String name = profile.getDisplayName();
String email = profile.getEmail();
Uri photoUrl = profile.getPhotoUrl();
Log.e("userinfo", " :: " + profile.getUid()+ " :: " + name + " :: " + email + " :: " + photoUrl);
}
};
如上面的代码我只检查providerId是否是firebase然后我存储信息,但如果我不这样做,它会给我数据两次
如果我使用这种方法,我有两个userIds: profile.getUid(),我只想知道哪一个是唯一的?和哪个我应该使用?
有人可以提出一种方法,在申请方成功登录后该怎么办,这将非常有帮助..
答案 0 :(得分:5)
用户可以使用多个提供商登录。每个提供程序为该用户生成自己的唯一ID。您可以在user info下为每个提供商访问这些内容。
除此之外,Firebase身份验证还会为用户生成自己的唯一ID。无论用户使用哪个提供商登录,他们最终都会使用相同的UID。您可以在FirebaseUser.getUid()
下找到。
要识别用户,您通常会使用FirebaseUser.getUid()
中的值,所以在您的代码段中user.getUid()
。