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

GoogleSignIn ApiException:10

籍弘伟
2023-03-14

我在我的应用程序中使用谷歌auth,但我无法让它工作。我当前的错误是

com.google.android.gms.common.api.apiException:10:at com.google.android.gms.common.internal.apiExceptionUtil.FromStatus(未知来源)at com.google.android.gms.auth.api.signin.googleSignin.getSignedAccountFromIntent(未知来源)at br.com.etc.login.loginActivity.onActivityResult(loginActivity.kt:123)

我的loginactivity:

class LoginActivity : AppCompatActivity() {
    private var googleSignInClient: GoogleSignInClient? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)

        val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .requestIdToken(getString(R.string.google_client_id))
            .build()

        googleSignInClient = GoogleSignIn.getClient(this, gso)

         bt_login_google.onClick {
            val signInIntent = googleSignInClient!!.signInIntent
            startActivityForResult(signInIntent, RC_SIGN_IN)
        }
     }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == RC_SIGN_IN) {
            val task = GoogleSignIn.getSignedInAccountFromIntent(data)
            handleSignInResult(task)
        } 
    }

    private fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
        try {
            val account = completedTask.getResult(ApiException::class.java)
            vm.loginGoogle(account?.idToken ?: "")
        } catch (e: ApiException) {
            Snackbar.make((findViewById(android.R.id.content)), R.string.error_generic, Snackbar.LENGTH_SHORT)
                .show()
            Timber.e(e)
        }
    }
}

所以我去了我的firebase项目(我只用于分析),去了项目设置并添加了SHA1。我还添加了一封支持邮件。我下载了google-settings.json并添加到我的项目中。IDk如果它很重要,但我的应用程序没有发布,我没有一个谷歌开发人员帐户。

我知道这是一个常见的问题,但我尝试了我能想到的一切,我仍然坚持这个问题。

共有1个答案

陶树
2023-03-14

您应该在OAuth2.0客户机ID下生成Web客户机ID,而不是使用Android客户机ID

 类似资料:
  • 问题内容: 我看到了ArrayList的Java文档,发现ArrayList的初始容量为10。 我认为这是2的幂是有道理的,但为什么是10? 我还检查了HashMap的初始容量,这是16,这很有意义。 数字10后面是否有具体原因? 问题答案: 这是简单的增长数组。当尝试添加元素并且超出缓冲区大小时,它只是在增长。因此,初始大小可以是任何正值。 1将太少。即使有一些元素,我们也会有一些调整大小的操作

  • 问题内容: 最近,我注意到声明包含64个元素的数组比声明具有65个元素的相同类型的数组要快得多(> 1000倍)。 这是我用来测试的代码: 这将运行在大约6毫秒,如果我更换用它需要大约7秒。如果作业分布在越来越多的线程中,那么这个问题就会成倍地恶化,这就是我的问题所在。 不同类型的数组(例如或)也会发生此问题。大字符串不会发生此问题:,但将其更改为时确实会发生 我想知道为什么会这样,是否有可能规避

  • 问题内容: 与用于桌面应用程序的Java连接的驱动程序是什么?我发现了很多类型,例如微小的,但都无法理解。请帮帮我 问题答案: 为了使您的生活更轻松,我建议您仅使用Oracle的Thin Driver。 首先,从Oracle网站下载驱动程序: 然后将JAR添加到您的项目中,并使用以下命令连接到数据库: 当然,将这些参数替换为与您的数据库相对应的参数。

  • 问题内容: 我需要解析一个字符串到目前为止。但是得到了一个不可解析的异常。以下是我的代码: 问题答案: 您的格式有几个问题: 表示年份中的某天,而不是月份中的某天 您错过了时区 月的格式不正确 因为你的时间是24小时制,你需要的,而不是 有关 日期和时间模式的 信息,请参阅文档。

  • 问题内容: 我正在使用DocumentFilter将输入限制为整数或十进制。我在这里发布的代码对此非常有效。 有人可以帮助我如何限制给定代码中的输入长度或范围吗? 谢谢!! 问题答案: 您可能想测试一下(我还没有测试过),但是基本思路应该可以帮助您入门。 同时查看文档过滤器示例 至于设置的最小长度,你可能想使用,以及

  • 问题内容: 更新: 为了保存PDF文件: 在下面的答案部分。 为了保存位图文件: 问题答案: 在Android 10及更高版本中保存PDF文件:

  • 问题内容: 我有1.6安装程序。我用过了 它不会更改我的Java安装,也不会说有较旧的版本,但是它确实完成了安装。 我一直在使用符号链接,但是不管我做什么,都可以运行 在终端总是导致 我的应用程序与GAE一起使用,而GAE完全不使用Java 1.7。因此,我无法使用1.7编译代码!我必须使用1.6,但未能找到一种方法来删除1.7或以其他方式强制在1.6上进行构建/编译。 最后一点,我在命令行上运行

  • 问题内容: 我已经使用Weblogic控制台创建了JNDI数据源,但无法从Web应用程序访问该对象。以下是详细信息 在weblogic 10.3.6中,我为数据源指定了JNDI名称: 为了从Web应用程序获得数据库连接,我已经在Web应用程序中编写了以下代码: 之前我使用Tomcat作为服务器,当我在文件中配置资源详细信息时能够获得数据库连接tomcat/conf/server.xml,但是当我开