我正在将 Firebase App Check 集成到我的 Android 应用程序中,并使用我的 Google 密钥中的 SHA-256 证书指纹对其进行配置。但是,该设置不起作用,并且所有对 Firebase 的请求都被阻止。
错误输出:
Error getting App Check token; using placeholder token instead. Error: n8.j: Error returned from API. code: 403 body: App attestation failed.
我已遵循文档:
启用的API
在我的应用程序中添加代码
Firebase.initialize(context = this)
if (BuildConfig.DEBUG) {
Firebase.appCheck.installAppCheckProviderFactory(
DebugAppCheckProviderFactory.getInstance(),
)
} else {
Firebase.appCheck.installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance(),
)
}
添加了 Play 控制台 -> 密钥管理部分提供的签名密钥的 SHA256
它适用于调试,但不适用于发布。
是否有我可能缺少的特定设置,或者这可能是指纹本身的问题?
您似乎已经完成了许多集成 Firebase App Check 的正确步骤。您遇到的错误(所有对 Firebase 的请求都被阻止,并显示
403
错误代码,指示“应用程序证明失败”)通常与应用程序的配置或 SHA-256 证书指纹问题有关。
您可以检查并尝试以下几件事:
Google Play 应用签名:如果您使用 Google Play 应用签名,则需要使用 Google Play 中的 SHA-1 和 SHA-256,因为 Google 会将您的发布签名密钥替换为 Google 服务器上的密钥。这是一个常见问题,开发人员使用上传密钥的指纹而不是 Google Play 用于重新签名应用程序的指纹。
双重检查 SHA-256 指纹:确保您添加到 Firebase 控制台的 SHA-256 指纹与 Google Play 应用签名使用的指纹匹配。您可以在 Google Play 管理中心的
Release > Setup > App Integrity
下找到它。
Firebase 配置:验证您的
google-services.json
文件是否正确放置在项目中,并且包含正确的项目信息。
添加调试和发布 SHA:请记住在 Firebase 控制台中添加调试和发布 SHA 指纹。有时,开发人员忘记添加发布 SHA,这可能会导致部署出现问题。
检查 API 限制:确保没有可能阻止请求的 API 限制。这包括检查 Firebase 控制台是否有任何 API 密钥限制。
联系 Firebase 支持:如果您已仔细检查所有内容但仍然不起作用,请考虑向 Firebase 支持寻求帮助。他们可能存在问题或他们可以帮助解决的特定配置问题。
请记住,确保指纹完全匹配并输入到 Firebase 控制台的正确部分至关重要。任何差异都可能导致您遇到的
403
错误。如果您最近对指纹进行了更改,则更改传播可能也需要一些时间,因此您可能需要稍等一下,然后再重试。
一些相关资源:
Firebase 应用程序检查错误 403:Flutter 中应用程序证明失败
Flutter-Firebase 应用程序在 Alphastore 上发布:SHA-256 指纹
firebase - 如何将 SHA-1 添加到 Android 应用程序
Firebase AppCheck 错误 403:应用程序证明失败