【问题标题】:Flutter - firebase_app_check not working in release mode, how fix it?Flutter - firebase_app_check 在发布模式下不工作,如何解决?
【发布时间】:2022-12-05 07:07:49
【问题描述】:

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

  1. 我在 Firebase 上启用 App Check(用于存储和 Firestore)。
  2. 我选择“Play Integrity”(文档如此推荐)作为证明提供者。
  3. 我将插件 firebase_app_check 添加到我的应用程序。 但它没有用。应用程序(在调试模式下)无法从 firestore 检索数据。
  4. 然后我将“SafetyNet”添加为证明提供者。此应用程序运行后(调试模式)。
  5. 我将我的 appbundle 发布到 Google Play。当我从 Google Play 下载应用程序时它不起作用(无法从 firestore 检索数据)。我对我的 appbundle 使用混淆。

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

     val firebaseAppCheck = FirebaseAppCheck.getInstance()
       firebaseAppCheck.installAppCheckProviderFactory(
       SafetyNetAppCheckProviderFactory.getInstance()
     )
    

    还是一个插件就够了?

    我该如何解决?

【问题讨论】:

标签: android flutter firebase google-cloud-firestore firebase-app-check


【解决方案1】:

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

警告:如果你想在启用 AppCheck 的情况下针对你的 firebase 后端进行调试,你必须获得一个调试令牌并每隔一小时左右将其添加到 Firebase 中。没有此令牌,只能调试物理 iOS 设备。对于 iOS 模拟器,您必须首先通过 Xcode 运行您的应用程序并在那里获取令牌。这是我遇到过的最骇人听闻的实现,是 AppCheck 的一个主要缺点,实际上是行不通的。

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

  1. 你必须按照here的描述使用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. Set up your Firebase project 中的步骤进行操作。笔记特别是第 3 步非常模糊:在 Firebase 控制台的 App Check 部分中注册您的应用以使用 Play Integrity 提供商的 App Check。您需要提供应用签名证书的 SHA-256 指纹。 他们的意思是:

    1. 在 google Play Console 下:Release > Setup > App Integrity > App Signing > copy the SHA-256 certificate fingerprint。

    2. 在 Firebase 控制台中添加此指纹 > App Check > Apps > 单击您的 Android 应用程序 > Play integrity

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

      iOS我按照这些文档使它在 iOS 上工作:

      1. 1. Set up your Firebase project,点击该文档中的所有链接,(将您带到 apple.com 并返回)
      2. 要在 iOS 模拟器上进行调试,请关注this documentation
      3. 如果您在 Xcode 中遇到构建错误(就像我一样),see my answer here

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2021-09-30
    • 2021-04-16
    • 2022-08-08
    • 2018-10-23
    相关资源
    最近更新 更多