Google 使用 Fitness API 的登录请求总是失败
Google Sign in request to use Fitness API is always failing
我正在按照本教程进行集成 Google Fit API
我执行的步骤:
- 在 Firebase 中创建了一个项目并在项目设置中配置了 SHA-1 密钥。
- 已下载 Google 服务 JSON 文件并将其添加到项目中
- 在 Google 项目控制台中启用 Google Fit API。
- 已验证凭据部分中存在自动生成的 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
我正在按照本教程进行集成 Google Fit API
我执行的步骤:
- 在 Firebase 中创建了一个项目并在项目设置中配置了 SHA-1 密钥。
- 已下载 Google 服务 JSON 文件并将其添加到项目中
- 在 Google 项目控制台中启用 Google Fit API。
- 已验证凭据部分中存在自动生成的 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