GetEmail()在使用Kotlin的Firebase的Google登录中为Null
首先,如果已经有一个帖子解决了我的问题,那么很抱歉,但是我发现的那些帖子并没有解决问题 我用email和pass创建了一个登录名(很好),再加上谷歌的登录名,这个登录名可以工作,但无论是在Firebase控制台中,还是在带有“account.email”的代码中,我都看不到电子邮件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
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()