Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GetEmail()在使用Kotlin的Firebase的Google登录中为Null_Firebase_Kotlin_Firebase Authentication_Google Login - Fatal编程技术网

GetEmail()在使用Kotlin的Firebase的Google登录中为Null

GetEmail()在使用Kotlin的Firebase的Google登录中为Null,firebase,kotlin,firebase-authentication,google-login,Firebase,Kotlin,Firebase Authentication,Google Login,首先,如果已经有一个帖子解决了我的问题,那么很抱歉,但是我发现的那些帖子并没有解决问题 我用email和pass创建了一个登录名(很好),再加上谷歌的登录名,这个登录名可以工作,但无论是在Firebase控制台中,还是在带有“account.email”的代码中,我都看不到电子邮件 override-on-activityresult(请求代码:Int,结果代码:Int,数据:Intent?){ super.onActivityResult(请求代码、结果代码、数据) if(requestCo

首先,如果已经有一个帖子解决了我的问题,那么很抱歉,但是我发现的那些帖子并没有解决问题

我用email和pass创建了一个登录名(很好),再加上谷歌的登录名,这个登录名可以工作,但无论是在Firebase控制台中,还是在带有“account.email”的代码中,我都看不到电子邮件

override-on-activityresult(请求代码:Int,结果代码:Int,数据:Intent?){
super.onActivityResult(请求代码、结果代码、数据)
if(requestCode==谷歌登录){
val任务:任务=GoogleSignIn.GetSignedAccountFromIntent(数据)
试一试{
val帐户:GoogleSignInAccount?=task.getResult(ApiException::class.java)
//此处的“account.email”已为空
如果(帐户!=null){
val凭证:AuthCredential=GoogleAuthProvider.getCredential(
account.idToken,
无效的
)
FirebaseAuth.getInstance().signInWithCredential(凭证).addOnCompleteListener(){
如果(it.ISSUCCESS){
showHome(account.email?:“”,ProviderType.GOOGLE)
}否则{
showarert()
}
}
}
}捕获(e:异常){
showarert()
}
}
}
调试时,我可以看到其他属性,如displayName、givenName、idToken。。。但电子邮件是空的

我尝试过的解决方案:

  • Firebase的“避免使用同一封电子邮件创建多个帐户”选项启用和禁用

  • 使用“account.email”或“getEmail()”

让我烦恼的是:

  • 在寻找答案时,我看到一些人提到 接受阅读许可,我没有看到任何弹出窗口要求我做什么 它

这是我的第一个问题,加上我的英语不是最好的。。。对不起,如果我做错了什么事,请提前向你表示感谢。

天哪,我太愚蠢了,我漏掉了一个词:)

我有这个:

val googleConfig: GoogleSignInOptions =
                GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.default_web_client_id))
        .build()
我需要这个:

val googleConfig: GoogleSignInOptions =
                GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.default_web_client_id))
        .requestEmail()
        .build()

一旦允许,将你的答案标记为已接受——这是让问题得到回答的正确方式SO@MarcinOrlowski我想你纠正了我的一些文字,谢谢,是的,我会把它标记为回答是的,我做了。您可以通过单击“编辑”查看对任何帖子所做的更改,如果您是已编辑帖子的OP,将显示所有修订以及一些控件。
val googleConfig: GoogleSignInOptions =
                GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.default_web_client_id))
        .build()
val googleConfig: GoogleSignInOptions =
                GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.default_web_client_id))
        .requestEmail()
        .build()