Android Google登录结果为空 [英] Android Google SignIn result is null

查看:98
本文介绍了Android Google登录结果为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在集成Android的Google登录,并且我希望返回id_token以便可以通过服务器进行身份验证.我遵循了 https://developers.google.com中的所有步骤. /identity/sign-in/android/backend-auth

I am integrating Google sign-in for Android and I want the id_token back so I can authenticate with my server. I followed all the steps as in https://developers.google.com/identity/sign-in/android/backend-auth

如果我仅请求requestEmail(),那么我将获取配置文件信息,但是如果添加.requestIdToken(getString(R.string.server_client_id)),则result.isSuccess()为假,并且我将不会获取任何帐户信息.有什么想法吗?

If I request just requestEmail() then I am getting back the profile information but if I add .requestIdToken(getString(R.string.server_client_id)) then result.isSuccess() is false and I am not getting any account information back. Any ideas?

        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .requestIdToken(getString(R.string.server_client_id))
            .build();

onActivityResult:

onActivityResult:

            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            if (result.isSuccess()) {
                    GoogleSignInAccount acct = result.getSignInAccount();
                    String idToken = acct.getIdToken();
                    mIdTokenTextView.setText("ID Token: " + idToken);
                    // TODO(user): send token to server and validate server-side
            } else {
                    mIdTokenTextView.setText("ID Token: null");
            }

如果我尝试在结果"上调用任何方法,则会收到Null指针错误...

If I try to call any method on "result" then I get a Null pointer error...

java.lang.RuntimeException:无法将结果ResultInfo {who = null,request = 9001,result = 0,data = Intent {(has extras}}}传递到活动{com.test.LoginActivity}:Java.lang. NullPointerException

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=9001, result=0, data=Intent { (has extras) }} to activity {com.test.LoginActivity}: java.lang.NullPointerException

推荐答案

已解决!

因此,在伤了我头6个小时之后,发现了问题.显然,当您使用SSH1创建config.json时,Google会自动创建与此项目关联的Web OAuth2密钥.我注意到的是Google用相同的名称创建了3个项目(一个用于Firebase,一个用于Web,另一个不确定)

So after 6 hrs of breaking my head, found the issue. Apparently when you create config.json using your SSH1 google automatically creates a Web OAuth2 key associated with this project. What I noticed was Google created 3 projects with the same name (one for firebase, one for Web and another not sure)

因此,请获取与同一Android项目链接的Web客户端ID.哦,谷歌!

So grab the Web client ID that is linked with the same Android project. Oh Google!

这篇关于Android Google登录结果为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆