我正在尝试增加对Play服务8.3.0中宣布的新Google登录的支持。我已成功配置了项目,并从GoogleApiClient获得了令牌,但是FirebaseInvalid Credentials error
在调用时返回了ref.authWithOAuthToken("google", token)
Google+登录正在运行,但是需要单独的许可,这对于开发棉花糖来说是很痛苦的。Firebase android教程有一个Google+登录示例,我的感觉是他们还不支持新的Google登录。
有人尝试过与Firebase相关的新Google登录并使其正常工作吗?
它是“向Android添加登录”和“使用Google REST API授权”中的步骤的混合。
拥有GoogleSignInResult
帐户名后,您可以从中获得帐户名,然后以最小范围请求令牌:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String email = acct.getEmail();
// TODO: run an async task to get an OAuth2 token for the account
}
}
异步任务将需要请求以下范围:
protected String doInBackground(String... params) {
String scopes = "oauth2:profile email";
String token = GoogleAuthUtil.getToken(getApplicationContext(), email, scopes);
// exception handling removed for brevity
return token;
}
现在,您可以像往常一样使用令牌登录Firebase:
ref.authWithOAuthToken("google", token, new Firebase.AuthResultHandler() {...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句