Auf dieser Seite erfahren Sie, wie Sie App Check in einer Flutter-App mit den Standardanbietern aktivieren: Play Integrity auf Android-Geräten, Device Check auf Apple-Plattformen und reCAPTCHA v3 im Web. Wenn Sie App Check aktivieren, können Sie dafür sorgen, dass nur Ihre App auf die Firebase-Ressourcen Ihres Projekts zugreifen kann. Hier finden Sie eine Übersicht über diese Funktion.
1. Das Firebase-Projekt einrichten
Installieren und initialisieren Sie FlutterFire, falls noch nicht geschehen.
Registrieren Sie Ihre Apps für die Verwendung von App Check bei den Anbietern von Play Integrity, Device Check und reCAPTCHA im Bereich Projekteinstellungen > App Check der Firebase Console.
Normalerweise müssen Sie alle Apps Ihres Projekts registrieren, da nur registrierte Apps auf die Backend-Ressourcen des Produkts zugreifen können, wenn Sie die Erzwingung für ein Firebase-Produkt aktivieren.
Optional: Legen Sie in den Einstellungen für die App-Registrierung eine benutzerdefinierte Gültigkeitsdauer (Time to Live, TTL) für vom Anbieter ausgestellte App Check-Tokens fest. Sie können die TTL auf einen beliebigen Wert zwischen 30 Minuten und 7 Tagen festlegen. Beachten Sie beim Ändern dieses Werts die folgenden Abwägungen:
- Sicherheit: Kürzere TTLs bieten eine höhere Sicherheit, da das Zeitfenster verkürzt wird, in dem ein gehacktes oder abgefangenes Token von einem Angreifer missbraucht werden kann.
- Leistung: Eine kürzere TTL bedeutet, dass Ihre App die Attestierung häufiger durchführt. Da der App-Attestierungsprozess bei jeder Ausführung zu einer Latenz bei Netzwerkanfragen führt, kann eine kurze TTL sich auf die Leistung Ihrer App auswirken.
- Kontingent und Kosten: Kürzere TTLs und häufige Neuattestierungen verringern Ihr Kontingent schneller und können bei kostenpflichtigen Diensten zu höheren Kosten führen. Weitere Informationen finden Sie unter Kontingente und Limits.
Die Standard-TTL ist für die meisten Apps angemessen. Hinweis: Die App Check-Bibliothek aktualisiert Tokens ungefähr bei der Hälfte der TTL-Dauer.
2. App Check-Bibliothek zur Anwendung hinzufügen
Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Plug-in zu installieren:
flutter pub add firebase_app_check
Erstellen Sie anschließend Ihre Flutter-Anwendung neu:
flutter run
3. App Check initialisieren
Fügen Sie Ihrer App den folgenden Initialisierungscode hinzu, damit er ausgeführt wird, bevor Sie Firebase-Dienste wie Storage verwenden, aber nachdem Firebase.initializeApp()
aufgerufen wurde.
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(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('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,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
Nächste Schritte
Sobald die App Check-Bibliothek in Ihrer App installiert ist, können Sie die aktualisierte App für Ihre Nutzer bereitstellen.
Die aktualisierte Client-App sendet dann App Check-Tokens mit jeder Anfrage an Firebase. Die Tokens müssen jedoch erst gültig sein, wenn Sie die Erzwingung im Abschnitt „App Check“ der Firebase Console aktivieren.
Messwerte beobachten und Erzwingung aktivieren
Bevor Sie die Erzwingung aktivieren, sollten Sie jedoch prüfen, ob dies die Nutzung für Ihre bestehenden rechtmäßigen Nutzer nicht beeinträchtigt. Wenn Sie jedoch eine verdächtige Nutzung Ihrer App-Ressourcen feststellen, sollten Sie die Erzwingung früher aktivieren.
Bei der Entscheidung können Sie sich die App-Check-Messwerte für die von Ihnen verwendeten Dienste ansehen:
- App Check-Anfragemesswerte für Realtime Database, Cloud Firestore, Cloud Storage und Authentifizierung überwachen
- Messwerte für App Check-Anfragen für Cloud Functions überwachen
App Check-Erzwigung aktivieren
Wenn Sie wissen, wie sich App Check auf Ihre Nutzer auswirkt, und bereit sind, fortzufahren, können Sie die App Check-Erzwigung aktivieren:
- Aktivieren Sie die App-Überprüfung für Realtime Database, Cloud Firestore, Cloud Storage und Authentifizierung.
- App Check-Erzwigung für Cloud Functions aktivieren
App Check in Debug-Umgebungen verwenden
Wenn Sie Ihre App nach der Registrierung für App Check in einer Umgebung ausführen möchten, die von App Check normalerweise nicht als gültig eingestuft wird, z. B. in einem Emulator während der Entwicklung oder in einer CI-Umgebung (Continuous Integration), können Sie einen Debug-Build Ihrer App erstellen, bei dem der App Check-Debuganbieter anstelle eines echten Attestierungsanbieters verwendet wird.
Weitere Informationen finden Sie unter App Check mit dem Debug-Anbieter in Flutter-Apps verwenden.