Firebase会返回多个ID,这是唯一的ID?

Tap*_*nHP 4 android firebase firebase-authentication

我是Firebase的新用户,我正在尝试将Firebase Auth api连接到我的应用程序中,我已经关注了来自官方网站的更新文档的文档,所有工作都正常.

我已经成功完成了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);
                }
            };
Run Code Online (Sandbox Code Playgroud)

如上面的代码我只检查providerId是否是firebase然后我存储信息,但如果我不这样做,它会给我数据两次

  1. 来自Firebase
  2. 来自谷歌也

如果我使用这个方法,我有两个userIds:profile.getUid(),我只是想知道哪一个是唯一的?并且,我应该使用?

有人可以提出一种方法,在申请方成功登录后该怎么做,这将是非常有帮助的..

Fra*_*len 5

用户可以使用多个提供商登录.每个提供程序为该用户生成自己的唯一ID.您可以在每个提供商的用户信息下访问这些内容.

除此之外,Firebase身份验证还会为用户生成自己的唯一ID.无论用户使用哪个提供商登录,他们最终都会使用相同的UID.你可以在下面找到这个FirebaseUser.getUid().

为了识别用户,您通常会使用from中的值FirebaseUser.getUid(),所以在您的代码段中:user.getUid().

  • @FrankvanPuffelen文档中是否有可能的提供者ID列表?看看是否有任何问题会非常有帮助.(我知道providerId可以是"facebook.com","密码",但我想知道所有可能的值). (2认同)