Google 使用 Fitness API 的登录请求总是失败

Google Sign in request to use Fitness API is always failing

我正在按照本教程进行集成 Google Fit API

我执行的步骤:

  1. 在 Firebase 中创建了一个项目并在项目设置中配置了 SHA-1 密钥。
  2. 已下载 Google 服务 JSON 文件并将其添加到项目中
  3. 在 Google 项目控制台中启用 Google Fit API。
  4. 已验证凭据部分中存在自动生成的 OAuth 客户端 ID。

Google 登录请求总是失败。分享下面的代码。

private fun connectToGoogleFit() {
    Log.e("GOOGLE_FIT", "google fit init")
    val fitnessOptions = FitnessOptions.builder()
        .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
        .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
        .build()
    if (!GoogleSignIn.hasPermissions(
            GoogleSignIn.getLastSignedInAccount(this),
            fitnessOptions
        )
    ) {
        Log.e("GOOGLE_FIT", "no permission")
        GoogleSignIn.requestPermissions(
            this, // your activity
            GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,
            GoogleSignIn.getLastSignedInAccount(this),
            fitnessOptions
        )
    } else {
        Log.e("GOOGLE_FIT", "has permission")
        accessGoogleFit()
    }
}
private fun accessGoogleFit() {
    //todo
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == GOOGLE_FIT_PERMISSIONS_REQUEST_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            Log.e("GOOGLE_FIT", "connection success")
            accessGoogleFit()
        } else {
            Log.e("GOOGLE_FIT", "connection failed")
        }
    }
}

我可以在 运行 这段代码中看到一个帐户选择器对话框。从对话框中选择帐户时,我在 onActivityResult 中收到失败代码。

可用的文档似乎很旧。我错过了什么吗?

我遇到了同样的问题。

经过一天多的时间,我找到了解决方案。

要使用 Google Fit,您必须在您的 Firebase 项目的身份验证面板中启用 Google 提供程序。

Firebase Panel