java - 如何登录 Google 帐户 - api 28
问题描述
我正在尝试将登录/注册设置为谷歌帐户。我编写了代码,它应该可以工作,但它没有(它总是以我制作的失败吐司告终)。
我看了一堆视频并查看了谷歌文档,我的代码几乎相同。
protected void onStart() {
if( getIntent().getBooleanExtra(ThirdActivity.extraLoggedIn, false) == false ) {
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
if (account != null) {
getDataFromFirebase(account);
//playerNameText.setText("Player Name: " + accountName);
} else {
startActivityForResult(mGoogleSignInClient.getSignInIntent(), 0);
//account = GoogleSignIn.getLastSignedInAccount(this);
//signUp(account);
}
loggedIn = true;
}
super.onStart();
changeLanguage(SingletonDemiClass.getInstance().getLanguage());
playerNameText.setText("Player Name: " + accountName);
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 0){
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
//Toast.makeText(SecondActivity.this, task.getResult().getId(), Toast.LENGTH_LONG).show();
signUp(task);
}
}
//private void signUp(GoogleSignInAccount account) {
private void signUp(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
accountID = account.getId();
accountName = account.getDisplayName();
}
catch (ApiException ex) {
Log.w("Google Sign-In Error", "signInResult:failed code=" + ex.getStatusCode());
Toast.makeText(SecondActivity.this, "Failed", Toast.LENGTH_LONG).show();
//}
}
}
解决方案
推荐阅读
- python - python ipycytoscape通过id访问节点
- python - 复制表面并将其在屏幕上粘贴
- python - 如何使用时间序列和聚合值创建堆积条形图
- javascript - 在 GTM 中设置变量时 $(this).text() 的替代方案
- python - Python脚本在Ubuntu上失败但在Windows上工作
- mysql - 使触发器 where 子句依赖 3 个表?
- owl - 基于关系子集的 OWL 推理
- java - 默认情况下,如何使用 Spring JPA 为非主键提供自动递增值?
- google-sheets - 如何跟踪单元格中值随时间的变化。自引用挑战
- r - 添加具有多个条件的虚拟变量