当前位置: 首页 > 知识库问答 >
问题:

无法在Android应用程序中使用谷歌登录

那弘
2023-03-14

我已经尝试了这里提到的许多解决方案,但我仍然无法解决这个问题。我收到:

“Google登录失败。com.google.android.gms.common.api.apiException:10”

下面是我的代码:

public class LoginActivity extends Activity {

  private GoogleSignInClient mGoogleSignInClient;
  private FirebaseAuth mAuth = FirebaseAuth.getInstance();
  private static final int RC_SIGN_IN = 1;
  static LoginActivity loginActivity;
  private FirebaseUser currentUser;

  public static LoginActivity getInstance(){
    return loginActivity;
  }
  public FirebaseUser getCurrentUser() {
    return currentUser;
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

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

    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
    mAuth = FirebaseAuth.getInstance();

    View signInButton = findViewById(R.id.sign_in_button);
    signInButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent signInIntent = mGoogleSignInClient.getSignInIntent();
            startActivityForResult(signInIntent, RC_SIGN_IN);
        }
    });
 }

 @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) {
        //Here resultCode is 0 & requestCode is 1.  
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        try {
            // This line of code is throwing exception.
            GoogleSignInAccount account = task.getResult(ApiException.class);
            Log.w(TAG, task.getException());
            Log.d(TAG, "firebaseAuthWithGoogle:" + account.getId());
            firebaseAuthWithGoogle(account.getIdToken());
        } catch (ApiException e) {
            // Google Sign In failed, update UI appropriately
            Log.w(TAG, "Google sign in failed", e);
        }
    }
}

附言。我也在同一个项目中使用Firestore数据库。我已经成功地将google-services.json保存在应用程序的文件夹中。

共有1个答案

邓嘉致
2023-03-14

请查看失败的com.Google.android.gms.common.api.apiException:10:

 类似资料:
  • 每当我试图通过启动google登录意图登录时,它都会直接进入onActivityResult,而我没有机会选择帐户。它所做的只是将屏幕变暗,但选择帐户的窗口不会出现。然后登录失败,出现以下异常: 和 (完整堆栈跟踪:https://pastebin.com/vBZeBLu0) 我使用的所有依赖项都是最新的,我的凭据(oAuth客户端id)都设置正确,我尝试了其他类似问题的解决方案,但没有一个解决了

  • 所以我一直在尝试通过selenium访问我的gmail或Google Colab笔记本。我没有通过电子邮件和密码进行身份验证,而是使用已保存的Google Chrome配置文件启动chromedriver,但它会抛出以下内容: 我已经尝试了以前行之有效的每一个解决方案,但现在不起作用了,我尝试的一些解决方案有: 禁用双因素身份验证 允许不太安全的应用程序访问 禁用我知道的每个标志,让网站检测到该网

  • 当我调用或我的工作正常并将作为中的实例返回时,我将刷新UI并显示“使用Google登录”按钮。 但是当我想再次登录时,我没有看到与用户的对话(我的设备上有2个用户,附上了图像)。该应用程序只在首次登录时显示此对话框,然后使用同一用户。如果我在设置屏幕上清除应用程序的数据,我将能够再次看到这个对话框。 我的问题是如何在每次注销后显示此对话框。 我在按下登录按钮时运行以下代码: 在中,我获得了的一个实

  • 我想集成谷歌照片api在Android,我已经做了谷歌登录过程中,但我不能得到访问令牌,因为我得到错误的FixedCreentalsProvider.create方法,而传递参数。