Flutter - firebase_app_check 在发布模式下无法工作,如何修复?

Fet*_*mos 10 android firebase flutter google-cloud-firestore firebase-app-check

我在我的 flutter 应用程序中使用 firebase_app_check 。我在 Firebase 中使用 AppCheck。事实证明设置起来并不容易,文档中有很多“白点”。所以按顺序:

  1. 我在 Firebase 上启用了 AppCheck(用于 starage 和 Firestore)。
  2. 我选择“Play Integrity”(因此文档建议)作为证明提供者。
  3. 我将插件 firebase_app_check 添加到我的应用程序中。但它没有奏效。应用程序(在调试模式下)无法从 Firestore 检索数据。
  4. 然后我添加“SafetyNet”作为证明提供者。此应用程序工作后(调试模式)。
  5. 我将我的应用程序包发布到 Google Play。当我从 Google Play 下载应用程序时,它不起作用(无法从 firestore 检索数据)。我对我的应用程序包使用混淆。

为什么我的应用程序在发布模式下无法与 AppChecker 一起使用?为什么“诚信游戏”不起作用?我必须在平台级别添加代码吗?根据这个文件?像这样:

 val firebaseAppCheck = FirebaseAppCheck.getInstance()
   firebaseAppCheck.installAppCheckProviderFactory(
   SafetyNetAppCheckProviderFactory.getInstance()
 )
Run Code Online (Sandbox Code Playgroud)

或者一个插件就足够了?

我该如何修复它?

Nie*_*els 6

所以我终于弄清楚了这一点,文档非常分散,所以这里是一个总结:

警告:如果您想在启用 AppCheck 的情况下针对 Firebase 后端进行调试,您必须获取调试令牌并每隔一小时左右将其添加到 Firebase 中。如果没有此令牌,则只能调试物理 iOS 设备。对于 iOS 模拟器,您必须首先通过 Xcode 运行您的应用程序并在那里获取令牌。在我看来,这是 AppCheck 的一个很大的缺点。

Android 调试(设备和模拟器):

  1. 您必须按照此处androidProvider: AndroidProvider.debug所述使用
  2. 然后运行您的应用程序,它不会工作,请查看控制台内部是否有以下行:Enter this debug secret into the allow list in the Firebase Console for your project: 49367303-30f3-4913-a596-...如果您没有看到此行:请点击“热重启”。
  3. 复制此代码并打开 Firebase 控制台 > 应用检查 > 应用 > 单击 Android 应用后面的 3 个点 > 管理调试令牌,在此处添加您的令牌: 在此输入图像描述

安卓制作:

对于生产,您首先必须遵循1. 设置 Firebase 项目中的步骤。注意特别是第 3 步非常模糊: 在 Firebase 控制台的 App Check 部分中通过 Play Integrity 提供商注册您的应用以使用 App Check。您需要提供应用签名证书的 SHA-256 指纹。 他们的意思是:

  1. 在 Google Play Console 中,位于:发布 > 设置 > 应用程序完整性 > 应用程序签名 > 复制 SHA-256 证书指纹。

  2. 在 Firebase 控制台 > 应用检查 > 应用 > 单击您的 Android 应用 > 播放完整性中添加此指纹

  3. 现在创建一个新版本并将其上传到 Play 商店。

iOS 我通过遵循以下文档使其在 iOS 上运行:

  1. 1. 设置您的 Firebase 项目,点击该文档中的所有链接(这会将您带到 apple.com 并返回)
  2. 要在 iOS 模拟器上进行调试,请遵循此文档
  3. 如果您在 Xcode 中遇到构建错误(就像我一样),请在此处查看我的答案

  • 我不知道,可能不是应用程序检查:-) (2认同)