使用Fitness API的Google登录请求始终失败

问题描述 投票:0回答:1

我正在关注本教程以集成Google Fit API

我执行的步骤:

  1. 在Firebase中创建了一个项目,并在项目设置中配置了SHA-1密钥。
  2. 下载了Google Service 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中获得失败代码。

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

android google-api google-oauth2 google-fit
1个回答
0
投票

我有同样的问题。

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

为了使用Google Fit,您必须在Firebase项目的“身份验证”面板中启用Google Provider。

Firebase Panel

© www.soinside.com 2019 - 2024. All rights reserved.