返回

Firebase App Check 拒绝部分用户请求:快速诊断并全面修复

Android

Firebase App Check 拒绝某些用户的请求:故障排除和解决方案

问题

最近,一些用户报告应用程序在使用 Firebase App Check 后无法正常工作。分析表明,App Check 阻止用户访问数据库,导致卸载量激增。

问题分析

屏幕截图显示了未验证和无效的请求,原因不明。尽管升级了 SDK,但问题仍然存在。

代码示例

已根据文档在 Application 类中初始化 FirebaseAppCheck

FirebaseApp.initializeApp(getApplicationContext());
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

已尝试的解决方案

广泛的研究未提供明确的解决方案。这导致每周损失超过 200 名用户,令人沮丧。

更新

在个人设备上重现了问题,日志消息为:

Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Invalid appcheck token

该问题仅出现在从应用商店安装的版本中,另一台设备上的问题则不存在。

解决方案

1. 验证 App Check 配置

确保 AndroidManifest.xml 文件中正确配置了 FirebaseAppCheck

2. 检查 App Check SDK 版本

使用最新版本的 Firebase App Check SDK。

3. 禁用 Play Integrity

如果使用 Play Integrity 作为 App Check 提供程序,请尝试暂时禁用它。

4. 检查设备兼容性

确保用户设备与 App Check 兼容。

5. 检查网络连接

确保用户设备具有稳定的网络连接。

6. 联系 Firebase 支持

如果以上步骤无效,请联系 Firebase 支持团队寻求进一步帮助。

结论

App Check 阻止用户访问数据库的问题可以通过遵循本文概述的步骤来解决。验证配置、检查 SDK 版本、禁用 Play Integrity、检查设备兼容性、确保网络连接并联系 Firebase 支持,这些措施将有助于解决问题并防止进一步的用户流失。

常见问题解答

Q1:App Check 是如何工作的?

A1:App Check 使用各种技术(包括 Play Integrity)验证用户请求是否来自受信任的设备和应用程序。

Q2:为什么我的 App Check 配置无效?

A2:检查 AndroidManifest.xml 文件中配置的 FirebaseAppId 和 SHA-256 证书指纹是否正确。

Q3:Play Integrity 如何影响 App Check?

A3:Play Integrity 提供额外的安全性,但它可能会导致某些设备出现问题。如果禁用 Play Integrity,则可能会解决问题。

Q4:如何联系 Firebase 支持?

A4:可以在 Firebase 控制台或 https://firebase.google.com/support 上联系 Firebase 支持团队。

Q5:我还能采取哪些其他步骤来解决此问题?

A5:定期更新 Firebase SDK、监控错误日志并与 Firebase 社区联系以寻求支持。