Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

使用帶有 Flutter 的調試提供程序使用 App Check

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

在您為 App Check 註冊您的應用程序後,您的應用程序通常不會在模擬器或持續集成 (CI) 環境中運行,因為這些環境不符合有效設備的條件。如果您想在開發和測試期間在這樣的環境中運行您的應用程序,您可以為您的應用程序創建一個調試版本,該版本使用 App Check 調試提供程序而不是真正的證明提供程序。

蘋果平台

要在模擬器中交互式運行您的應用程序時(例如在開發期間)使用調試提供程序,請執行以下操作:

  1. 在文件ios/Runner/AppDelegate.swift (或AppDelegate.m )中,在 Debug 構建中創建並設置 App Check 調試提供程序工廠:

    迅速

    import UIKit
    import Flutter
    import Firebase  // Add the Firebase import.
    
    @UIApplicationMain
    @objc class AppDelegate: FlutterAppDelegate {
      override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
      ) -> Bool {
        // Use the debug provider in Debug builds:
    #if DEBUG
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
    #endif
    
        GeneratedPluginRegistrant.register(with: self)
        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
      }
    }
    

    Objective-C

    #import "AppDelegate.h"
    #import "GeneratedPluginRegistrant.h"
    @import Firebase;  // Add the Firebase import.
    
    @implementation AppDelegate
    
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Use the debug provider in Debug builds:
    #if DEBUG
      FIRAppCheckDebugProviderFactory *providerFactory = [[FIRAppCheckDebugProviderFactory alloc] init];
      [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    #endif
      [GeneratedPluginRegistrant registerWithRegistry:self];
      // Override point for customization after application launch.
      return [super application:application didFinishLaunchingWithOptions:launchOptions];
    }
    
    @end
    
  2. 在您的 Xcode 項目(v11.0 或更高版本)中啟用調試日誌記錄:

    1. 打開產品 > 方案 > 編輯方案
    2. 從左側菜單中選擇運行,然後選擇參數選項卡。
    3. 啟動時傳遞的參數部分,添加-FIRDebugEnabled
  3. 使用 Xcode 打開ios/Runner.xcworkspace並在模擬器中運行您的應用程序。當 Firebase 嘗試向後端發送請求時,您的應用會在調試輸出中打印一個本地調試令牌。例如:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. 在 Firebase 控制台的應用檢查部分,從應用的溢出菜單中選擇管理調試令牌。然後,註冊您在上一步中登錄的調試令牌。

    “管理調試令牌”菜單項的屏幕截圖

註冊令牌後,Firebase 後端服務會將其視為有效。

由於此令牌允許在沒有有效設備的情況下訪問您的 Firebase 資源,因此將其保密至關重要。不要將其提交到公共存儲庫,如果已註冊的令牌遭到破壞,請立即在 Firebase 控制台中將其撤消。

安卓

要在 Android 環境中運行 Flutter 應用程序時使用調試提供程序,請在 Flutter 應用程序中實現以下代碼:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',
    // Set androidProvider to `AndroidProvider.debug`
    androidProvider: AndroidProvider.debug,
  );
  runApp(App());
}

當 Firebase 嘗試向後端發送請求時,您的應用會在調試輸出中打印一個本地調試令牌。例如:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. 在 Firebase 控制台的應用檢查部分,從應用的溢出菜單中選擇管理調試令牌。然後,註冊您在上一步中登錄的調試令牌。

    “管理調試令牌”菜單項的屏幕截圖

註冊令牌後,Firebase 後端服務會將其視為有效。

網絡

要在從localhost運行您的應用程序時(例如在開發期間)使用調試提供程序,請執行以下操作:

  1. 在文件web/index.html中,通過將self.FIREBASE_APPCHECK_DEBUG_TOKEN設置為true來啟用調試模式:

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. 在本地運行您的 Web 應用程序並打開瀏覽器的開發人員工具。在調試控制台中,您將看到一個調試令牌:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will
    need to safelist it in the Firebase console for it to work.

    此令牌本地存儲在您的瀏覽器中,每當您在同一台機器上的同一瀏覽器中使用您的應用程序時都會使用此令牌。如果您想在另一個瀏覽器或另一台機器上使用令牌,請將self.FIREBASE_APPCHECK_DEBUG_TOKEN設置為令牌字符串而不是true

  3. 在 Firebase 控制台的應用檢查部分,從應用的溢出菜單中選擇管理調試令牌。然後,註冊您在上一步中登錄的調試令牌。

    “管理調試令牌”菜單項的屏幕截圖

註冊令牌後,Firebase 後端服務會將其視為有效。

由於此令牌允許在沒有有效設備的情況下訪問您的 Firebase 資源,因此將其保密至關重要。不要將其提交到公共存儲庫,如果已註冊的令牌遭到破壞,請立即在 Firebase 控制台中將其撤消。