3

我正在使用 Android 上的 google fit api 进行开发。我按照谷歌文档的指南设置了我的项目。但是当我在真实设备上测试身份验证时,在我选择我的谷歌帐户后,它会显示一个带有加载标志的白页,如图片。它只是永远加载并且没有任何错误。

这是我在项目中所做的:

// AndroidManife
// because target API level 28
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
// google-services.json
"oauth_client": [
        {
          "client_id": "xxx-xxx.apps.googleusercontent.com",
          "client_type": 1,
          "android_info": {
            "package_name": "xxx.xxx.xxx",
            "certificate_hash": "xxxxhash"
          }
        },
        {
          "client_id": "xxx-xxx.apps.googleusercontent.com",
          "client_type": 3
        }
      ]
// my auth activity, sample code from google doc
FitnessOptions fitnessOptions = FitnessOptions.builder()
      .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
      .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
      .build();

    GoogleSignInAccount account = GoogleSignIn.getAccountForExtension(this, fitnessOptions);

    if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
      GoogleSignIn.requestPermissions(
        this, // your activity
        GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
        account,
        fitnessOptions);
    }

OAuth 2.0 客户端 ID 在 Google API 控制台中是可以的。我检查了密钥库 SHA-1 是否正确。

我还将我的密钥库 SHA-1 放在 Firebase 项目设置中。

Google 登录在 Firebase 身份验证 -> 登录方法中打开。

我错过了什么?我应该怎么办?请帮我。非常感谢。

4

3 回答 3

2

如果您的应用在“OAuth 同意屏幕”上标记为“EXTERNAL” - 您需要添加测试用户

在此处输入图像描述

于 2021-09-15T07:54:52.297 回答
1

我想通了。这是因为我没有在 Google API 控制台 -> OAuth 同意屏幕中编辑我的应用名称。

于 2020-07-23T04:14:08.777 回答
0

对我来说,问题是我的项目在 oAuth 同意屏幕中被标记为外部。在这种情况下,您必须添加一个测试用户才能继续在应用程序中使用您的 google fit API。

于 2021-06-07T05:50:07.070 回答