Firebase is back at Google I/O on May 10! Register now

開始在 Flutter 應用中使用 App Check

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

本頁向您展示如何在 Flutter 應用中啟用 App Check,使用默認提供程序:Android 上的 Play Integrity、Apple 平台上的 Device Check 和 web 上的 reCAPTCHA v3。當您啟用 App Check 時,您有助於確保只有您的應用可以訪問您項目的 Firebase 資源。請參閱此功能的概述

1. 設置您的 Firebase 項目

  1. 如果您還沒有這樣做,請安裝並初始化 FlutterFire

  2. 在 Firebase 控制台的“項目設置”>“應用檢查”部分註冊您的應用以使用 Play Integrity、設備檢查和 reCAPTCHA 提供程序的應用檢查。

    您通常需要註冊項目的所有應用,因為一旦您為 Firebase 產品啟用強制執行,只有已註冊的應用才能訪問該產品的後端資源。

  3. 可選:在應用註冊設置中,為提供商發布的應用檢查令牌設置自定義生存時間 (TTL)。您可以將 TTL 設置為 30 分鐘到 7 天之間的任何值。更改此值時,請注意以下權衡:

    • 安全性:較短的 TTL 可提供更強的安全性,因為它減少了洩露或攔截的令牌可能被攻擊者濫用的窗口。
    • 性能:較短的 TTL 意味著您的應用將更頻繁地執行證明。由於應用程序證明過程每次執行都會增加網絡請求的延遲,因此較短的 TTL 可能會影響應用程序的性能。
    • 配額和成本:較短的 TTL 和頻繁的重新證明會更快地耗盡您的配額,而對於付費服務,可能會花費更多。請參閱配額和限制

    對於大多數應用來說,默認 TTL 是合理的。請注意,App Check 庫以大約一半的 TTL 持續時間刷新令牌。

2. 將 App Check 庫添加到您的應用程序

  1. 在 Flutter 項目的根目錄下,運行以下命令來安裝插件:

    flutter pub add firebase_app_check
    
  2. 完成後,重新構建您的 Flutter 應用程序:

    flutter run
    

3.初始化應用檢查

將以下初始化代碼添加到您的應用中,使其在您使用任何 Firebase 服務(例如 Storage)之前運行,但在調用Firebase.initializeApp()之後運行;

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',
    // Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
    // your preferred provider. Choose from:
    // 1. debug provider
    // 2. safety net provider
    // 3. play integrity provider
    androidProvider: AndroidProvider.debug,
  );
  runApp(App());
}

下一步

在您的應用中安裝 App Check 庫後,開始將更新的應用分發給您的用戶。

更新後的客戶端應用將開始向 Firebase 發出的每個請求發送 App Check 令牌,但 Firebase 產品不需要令牌有效,直到您在 Firebase 控制台的 App Check 部分啟用強制執行。

監控指標並啟用強制執行

但是,在啟用強制執行之前,您應該確保這樣做不會破壞您現有的合法用戶。另一方面,如果您發現對應用資源的使用可疑,您可能希望盡快啟用強制執行。

為了幫助做出此決定,您可以查看您使用的服務的 App Check 指標:

啟用應用檢查強制

當您了解 App Check 將如何影響您的用戶並準備好繼續時,您可以啟用 App Check 強制:

在調試環境中使用 App Check

如果在您為 App Check 註冊了您的應用程序後,您希望在 App Check 通常不會歸類為有效的環境中運行您的應用程序,例如開發期間的模擬器或持續集成 (CI) 環境,您可以創建使用 App Check 調試提供程序而不是真正的證明提供程序的應用程序的調試版本。

請參閱在 Flutter 應用程序中通過調試提供程序使用 App Check