Firebase 身份验证 - 没有来自谷歌登录提供商的电子邮件

SO *_* 80 3 android firebase-authentication google-signin

使用 Google 提供商登录时电子邮件为空

我尝试过 3 个 Gmail 帐户 - 其中 1 个没问题,但使用 2 个我得到空值。所有三个都在控制台中正确列出,帐户的电子邮件为“标识符”

 currentUser = FirebaseAuth.getInstance().getCurrentUser();
 String Email = currentUser.getEmail();
Run Code Online (Sandbox Code Playgroud)

创建身份验证的代码:

providers = Arrays.asList(
            new AuthUI.IdpConfig.GoogleBuilder().build(),
            new AuthUI.IdpConfig.FacebookBuilder().build()
 );

 startActivityForResult(
                AuthUI.getInstance().createSignInIntentBuilder()
                        .setAvailableProviders(providers)
                        .setIsSmartLockEnabled(false)
                        .build(),MY_REQUEST_CODE);


Run Code Online (Sandbox Code Playgroud)

Guu*_*uus 5

我遇到了同样的问题,没有返回 Google 电子邮件地址。

添加范围电子邮件后:

var provider = new this.$firebase.auth.GoogleAuthProvider();
provider.addScope('email');
Run Code Online (Sandbox Code Playgroud)

它正在返回 providerdata 中的电子邮件地址。

我在 Facebook 登录时也遇到了同样的问题。我需要像这样添加范围

var provider = new this.$firebase.auth.FacebookAuthProvider();
provider.addScope("email");
Run Code Online (Sandbox Code Playgroud)


SO *_* 80 -2

我将代码从测试项目复制到我的主项目中,问题得到解决。我不明白为什么。