Use when working on accessibility, a11y, WCAG, ARIA, screen readers, keyboard nav, focus order, contrast, alt text, captions, reduced motion, or target sizes; not language/culture/device (see inclusive-design).
日本語の概要は準備中です。原文の説明を表示しています。
Use when implementing app attestation, configuring App Check providers, setting up debug tokens, enabling backend enforcement, or managing token refresh.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
This skill defines how to correctly implement Firebase App Check in Flutter applications, covering provider selection, debug configuration, enforcement rollout, and security hardening.
Use this skill when:
flutter pub add firebase_app_check
import 'package:firebase_app_check/firebase_app_check.dart';
Initialize App Check after Firebase.initializeApp() and before using any Firebase services:
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
androidProvider: AndroidProvider.playIntegrity,
appleProvider: AppleProvider.deviceCheck,
);
FirebaseApp.configure() on Apple PlatformsAvoid calling FirebaseApp.configure() natively in your AppDelegate — Firebase.initializeApp() already configures the native default app. If you must call it, install your AppCheckProviderFactory before configure(); otherwise the Apple SDK locks in DeviceCheck on physical devices and the appleProvider passed to activate() (including AppleProvider.debug) is silently ignored. This is easiest to miss because simulators already default to the debug provider. activate() on Android is unaffected. See flutterfire#18613.
Android:
| Provider | Use case |
|---|---|
AndroidProvider.playIntegrity | Production (default) |
AndroidProvider.debug | Development / CI only |
Apple (iOS / macOS):
| Provider | Use case |
|---|---|
AppleProvider.deviceCheck | Production default (iOS 11+, macOS 10.15+) |
AppleProvider.appAttest | Enhanced security (iOS 14+, macOS 14+) |
AppleProvider.appAttestWithDeviceCheckFallback | App Attest with Device Check fallback |
AppleProvider.debug | Development / CI only |
Web:
| Provider | Use case |
|---|---|
ReCaptchaV3Provider | Standard reCAPTCHA v3 |
ReCaptchaEnterpriseProvider | Enhanced with additional features |
Android note: For certain Android devices, enable "Meets basic device integrity" in the Google Play console to ensure proper App Check functionality.
Use debug providers during development to run in emulators or CI environments:
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
androidProvider: AndroidProvider.debug,
appleProvider: AppleProvider.debug,
);
iOS: Enable debug logging by adding -FIRDebugEnabled to Arguments Passed on Launch in Xcode. The debug token appears in the console output. On physical devices, AppleProvider.debug is ignored if your AppDelegate calls FirebaseApp.configure() natively — see the native configure() note in Setup and Configuration.
Android: The debug token prints to logcat on first run. Filter by DebugAppCheckProvider.
Web: Set self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; in web/index.html before Firebase scripts load.
FirebaseAppCheck.instance.onTokenChange.listen((token) {
// Attach token to custom backend requests
// e.g., set as Authorization header
});
Follow this sequence to avoid disrupting legitimate users:
// Node.js Admin SDK example for verifying App Check tokens
const appCheckToken = req.header('X-Firebase-AppCheck');
const appCheckClaims = await getAppCheck().verifyToken(appCheckToken);
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when working on accessibility, a11y, WCAG, ARIA, screen readers, keyboard nav, focus order, contrast, alt text, captions, reduced motion, or target sizes; not language/culture/device (see inclusive-design).
日本語の概要は準備中です。原文の説明を表示しています。
Use when creating a feature, designing folder structure, adding repositories/services/view models, wiring dependency injection, or deciding which layer owns logic.
日本語の概要は準備中です。原文の説明を表示しています。
Use when creating a Cubit or Bloc, modeling state with sealed classes or status enums, wiring BlocBuilder/BlocListener/BlocProvider, writing bloc tests, or choosing between Cubit and Bloc.
日本語の概要は準備中です。原文の説明を表示しています。
Use when asked to review a PR, MR, branch, or diff, audit changed files, or check code quality.
日本語の概要は準備中です。原文の説明を表示しています。
Use when writing switch statements, refactoring if-else chains, creating data classes, choosing records vs classes, destructuring values, or modernizing pre-Dart-3 code.
日本語の概要は準備中です。原文の説明を表示しています。
Use when building AI agents in Dart, implementing Genkit flows or tools, integrating LLMs into Dart or Flutter applications, or using Genkit Dart plugins.
日本語の概要は準備中です。原文の説明を表示しています。