[Flutter] Firebase App Check

2026-02-06 hit count image

今回のブログポストでは、FlutterでFirebaseのApp Checkを設定する方法について説明します。

概要

今回のブログポストでは、Flutterで開発したアプリが正規品であることを検証し、検証されていないクライアントがFirebaseバックエンドサービス(Firestore、Storage、Functionsなど)にアクセスすることを防ぐために、FirebaseApp Checkを設定する方法について説明します。

ブログシリーズ

このブログはシリーズで制作されました。次のリンクを通じて他のブログポストもご確認ください。

Firebaseプロジェクトの作成と設定

FlutterでFirebaseを使用するには、Firebaseプロジェクトを作成し、firebase_coreパッケージをインストールする必要があります。以下のリンクを通じて詳細をご確認ください。

firebase_app_checkのインストール

FlutterプロジェクトでFirebase App Checkを使用するには、firebase_app_checkパッケージをインストールする必要があります。次のコマンドを実行してfirebase_app_checkパッケージをインストールします。

flutter pub add firebase_app_check

FlutterでApp Checkを有効化

firebase_app_checkパッケージをインストールした後、FlutterアプリでApp Checkを有効化する必要があります。main.dartファイルを次のように修正します。

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  await FirebaseAppCheck.instance.activate(
    androidProvider: AndroidProvider.playIntegrity,
    appleProvider: AppleProvider.deviceCheck,
  );

  runApp(MyApp());
}

androidProviderにはAndroidProvider.playIntegrityを設定してPlay Integrityを使用し、appleProviderにはAppleProvider.deviceCheckを設定してDeviceCheckを使用します。

デバッグモードでApp Checkを使用

開発中は、実際のデバイスではなくエミュレータやシミュレータでテストする必要がある場合があります。この場合、デバッグモードでApp Checkを使用するために次のように設定できます。

await FirebaseAppCheck.instance.activate(
  androidProvider: kDebugMode ? AndroidProvider.debug : AndroidProvider.playIntegrity,
  appleProvider: kDebugMode ? AppleProvider.debug : AppleProvider.deviceCheck,
);

デバッグモードでは、AndroidProvider.debugAppleProvider.debugを使用してデバッグトークンを生成します。生成されたデバッグトークンはコンソールに出力され、このトークンをFirebase Consoleに登録する必要があります。

Firebase ConsoleでApp Check > Apps > 該当アプリのメニュー > Manage debug tokensを選択してデバッグトークンを登録できます。

Android設定

Google Cloud Platform設定

Firebase App Checkを使用するには、Google Cloud PlatformでApp Checkを有効化する必要があります。次のリンクからGoogle Cloud Consoleにアクセスし、App Checkを有効化します。

次にPlay Integrity APIを検索します。

Flutter Firebase App Check - GCP, search Play Integrity API

検索結果からPlay Integrity APIを選択し、Enableボタンをクリックします。

Flutter Firebase App Check - GCP, enable Play Integrity API

Google Play Console設定

Play Integrityを設定するには、Google Play ConsolePlay Integrity APIを使用するように設定する必要があります。

Google Cloud Platformの連携

まずGoogle Play Consoleに移動し、Play Integrityを設定したいアプリのアプリの完全性(App integrity)メニューに移動します。

Flutter Firebase App Check - Google Play Console, Android App Integrity

下部にあるCloudプロジェクトをリンク(Link Cloud project)を選択します。すると次のようにGoogle Cloud projectを選択する画面が表示されます。

Flutter Firebase App Check - Google Play Console, Android link google cloud project

該当アプリのGoogle Cloud projectを選択し、適用(Apply)ボタンをクリックしてGoogle Cloud projectを選択します。Google Cloudプロジェクトが連携されると、次のような画面を確認できます。

Flutter Firebase App Check - Google Play Console, update goal

この画面で目標を更新(Update goal)ボタンをクリックして、Play Integrityで保護したいアクションを設定します。

Flutter Firebase App Check - Android select the actions you want to prevent

自動保護の設定

自動保護(Automatic protection)を設定してアプリを保護する必要があります。

Flutter Firebase App Check - Android turn on automatic protection

アプリの完全性ページにある自動保護の設定(Turn on)ボタンをクリックします。

Flutter Firebase App Check - Android turn on installer check

インストーラーチェック(Installer check)をクリックして設定します。その後、右下の保存(Save)ボタンをクリックして設定を保存します。

ストア掲載情報の表示

ストア掲載情報の表示(Store listing visibility)を設定してアプリを保護できます。

Flutter Firebase App Check - Android turn on store listing visibility

アプリの完全性ページにあるストア掲載情報の表示の設定(Turn on)ボタンをクリックします。

Flutter Firebase App Check - Android select device integrity checks

デバイスの完全性チェック(Device integrity checks)を選択し、右下の保存(Save)ボタンをクリックして設定を保存します。

アプリ署名キーのコピー

Firebase App Checkを使用するには、Google Play Consoleで使用するアプリ署名(Play app signing)キーをコピーしてFirebase Consoleに登録する必要があります。

Playアプリ署名(Play app signing)項目の設定(Settings)をクリックして、アプリ署名(App signing)ページに移動します。

Flutter Firebase App Check - Play app signing

アプリ署名ページでアプリ署名キー証明書(App signing key certificate)SHA-256証明書フィンガープリント(SHA-256 certificate fingerprint)をコピーします。これは後でFirebase Consoleに登録するときに使用します。

Flutter Firebase App Check - App signing key certificate

次に、下部にあるアップロードキー証明書(Upload key certificate)SHA-256証明書フィンガープリント(SHA-256 certificate fingerprint)もコピーします。これも後でFirebase Consoleに登録するときに使用します。

Flutter Firebase App Check - Upload key certificate

iOS設定

Firebase App Checkを使用するには、Key IDTeam IDを設定する必要があります。Firebase App Checkで使用するKeyを生成し、Team IDを確認するためにApple Developerにアクセスします。

Apple Developerにアクセスした後、アカウント(Account)> Certificates, Identifiers & Profiles > Keysに移動します。

Flutter Firebase App Check - Apple Developer Certificates, Identifiers & Profiles

Keysの横にある+ボタンをクリックして新しいKeyを生成します。

Flutter Firebase App Check - Apple Developer Add Key

Key nameを入力し、DeviceCheckにチェックを入れてContinueボタンをクリックしてKeyを生成します。

Flutter Firebase App Check - Apple Developer Create Key

Key nameDeviceCheckにチェックが入った状態でRegisterボタンをクリックしてKeyを生成します。

Flutter Firebase App Check - Apple Developer Download Key and Copy Key ID

最後に、Apple Developerページ上部にあるTeam IDをコピーします。

Flutter Firebase App Check - Apple Developer Team ID

ここでダウンロードしたKeyファイルとKey IDTeam IDをFirebase Consoleに登録する予定です。

Firebase設定

AndroidとiOSの設定が完了したら、Firebase ConsoleでFirebase App Checkを設定します。Firebase Consoleに移動し、App Checkを設定したいアプリのApp Checkを選択します。

Flutter Firebase App Check - Firebase app check

Get startedボタンをクリックしてApp Checkの設定を開始します。

Flutter Firebase App Check - Get started

上部のAppsタブを選択し、リストに表示されたAndroidの右側にあるメニューアイコンを選択してShow detailsをクリックします。

Flutter Firebase App Check - Show details

Play Integrityを選択し、SHA-256 certificate fingerprintに先ほどコピーしたアプリ署名キー証明書(SHA-256 certificate fingerprint)を貼り付けます。

Flutter Firebase App Check - Android SHA-256 certificate fingerprint

Add another fingerprintをクリックし、先ほどコピーしたアップロードキー証明書(SHA-256 certificate fingerprint)を貼り付けます。

Flutter Firebase App Check - Android Add another fingerprint

最後にSaveボタンをクリックして設定を保存します。

iOS設定

iOSアプリのApp Checkを設定します。リストに表示されたiOSアプリの右側にあるメニューアイコンを選択してShow detailsをクリックします。

DeviceCheckを選択し、先ほどApple DeveloperからダウンロードしたKeyファイルをアップロードします。Key IDTeam IDを入力し、Saveボタンをクリックして設定を保存します。

App Checkの適用

App Checkの設定が完了したら、FirebaseバックエンドサービスにApp Checkを適用できます。App CheckページでAPIsタブを選択すると、Firebaseバックエンドサービスのリストを確認できます。

各サービスの横にあるEnforceボタンをクリックしてApp Checkを適用できます。ただし、App Checkを適用すると検証されていないクライアントはそのサービスにアクセスできなくなるため、すべてのクライアントがApp Checkを有効化した後に適用することをお勧めします。

完了

これでFlutterでFirebase App Checkを使用するためにFlutterプロジェクトにfirebase_app_checkを設定する方法について説明しました。Firebase App Checkを使用すると、検証されていないクライアントがFirebaseバックエンドサービスにアクセスすることを防ぐことができ、アプリのセキュリティを強化できます。

私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!

アプリ広報

今見てるブログを作成たDekuが開発したアプリを使ってみてください。
Dekuが開発したアプリはFlutterで開発されています。

興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。

Posts