FireFlutter:在调试模式下启用应用程序检查

Dab*_*bel 6 debugging flutter-web firebase-app-check

问题

App Check 在生产模式下工作正常,但在调试模式下出现错误:

401: Firebase App Check token is invalid.

我尝试了两件事:

  • 使用 Firebase 控制台生成调试令牌。
  • <script>self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;</script>通过插入到 来在应用程序中生成调试令牌index.html。然后将其作为调试令牌添加到 Firebase 控制台中。我还注意到,通过这种方式,每次应用程序重新启动时都会生成一个新的调试令牌。

代码

  if (kReleaseMode) {
    await FirebaseAppCheck.instance.activate(
      webRecaptchaSiteKey: LIVE_TOKEN,
    );
  } else {
    await FirebaseAppCheck.instance.activate(
      webRecaptchaSiteKey: DEBUG_TOKEN,
    );
  }
Run Code Online (Sandbox Code Playgroud)

问题

使用 FlutterFire,生成和使用 App Check 的调试令牌的正确方法是什么?遵循文档对我来说不起作用。

文档

https://firebase.google.com/docs/app-check/flutter/default-providers

https://firebase.flutter.dev/docs/app-check/debug-provider/#activating-the-debug-provider-web

小智 6

我按照接下来的步骤设法使其正常工作。我也在FlutterFire Github上报告了这一点。

  1. 将以下内容添加到index.html
<body>
    <script>self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;</script>
    <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app-check.js"></script>
    ......
Run Code Online (Sandbox Code Playgroud)
  1. 在调试模式下运行应用程序,调试令牌将打印在日志中

应用程序检查调试令牌:fb1a8616-b721-42c6-841c-544x5743ea72。您需要将其添加到 Firebase 控制台中应用的应用检查设置中才能正常工作。

  1. 将该调试令牌添加到 Firebase 控制台中的 App Check

    https://firebase.google.com/docs/app-check/web/debug-provide

  2. 在 dart 代码中设置调试令牌并重新启动(不要关闭应用程序)

const debugToken = 'fb1a8616-b721-42c6-841c-544x5743ea72';

await FirebaseAppCheck.instance.activate(
   webRecaptchaSiteKey: kReleaseMode ? liveToken : debugToken,
);
Run Code Online (Sandbox Code Playgroud)

主要的不便在于,每次执行应用程序时,都会生成一个新的调试令牌,并且必须在 Firebase 控制台、dart 代码中设置它,并重新启动应用程序而不关闭它。