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

Verwenden Sie App Check mit dem Debug-Anbieter mit Flutter

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Nachdem Sie Ihre App für App Check registriert haben, wird Ihre App normalerweise nicht in einem Emulator oder in einer CI-Umgebung (Continuous Integration) ausgeführt, da diese Umgebungen nicht als gültige Geräte gelten. Wenn Sie Ihre App während der Entwicklung und beim Testen in einer solchen Umgebung ausführen möchten, können Sie einen Debug-Build Ihrer App erstellen, der den App Check-Debug-Anbieter anstelle eines echten Nachweisanbieters verwendet.

Apple-Plattformen

Gehen Sie wie folgt vor, um den Debug-Anbieter zu verwenden, während Sie Ihre App interaktiv in einem Simulator ausführen (z. B. während der Entwicklung):

  1. Erstellen Sie in der Datei ios/Runner/AppDelegate.swift (oder AppDelegate.m ) die Debug-Provider-Factory für App Check und legen Sie sie in Debug-Builds fest:

    Schnell

    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)
      }
    }
    

    Ziel 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. Aktivieren Sie die Debug-Protokollierung in Ihrem Xcode-Projekt (v11.0 oder neuer):

    1. Öffnen Sie Produkt > Schema > Schema bearbeiten .
    2. Wählen Sie im linken Menü Ausführen und dann die Registerkarte Argumente aus.
    3. Fügen Sie im Abschnitt Beim Start übergebene Argumente -FIRDebugEnabled hinzu.
  3. Öffnen Sie ios/Runner.xcworkspace mit Xcode und führen Sie Ihre App im Simulator aus. Ihre App gibt ein lokales Debug-Token an die Debug-Ausgabe aus, wenn Firebase versucht, eine Anfrage an das Back-End zu senden. Zum Beispiel:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Wählen Sie im Abschnitt „App-Prüfung“ der Firebase-Konsole im Überlaufmenü Ihrer App Debug-Token verwalten aus. Registrieren Sie dann das Debug-Token, das Sie im vorherigen Schritt angemeldet haben.

    Screenshot des Menüelements Manage Debug Tokens

Nachdem Sie das Token registriert haben, akzeptieren die Firebase-Back-End-Dienste es als gültig.

Da dieses Token den Zugriff auf Ihre Firebase-Ressourcen ohne ein gültiges Gerät ermöglicht, ist es wichtig, dass Sie es privat halten. Übertragen Sie es nicht in ein öffentliches Repository, und wenn ein registriertes Token jemals kompromittiert wird, widerrufen Sie es sofort in der Firebase-Konsole.

Android

Um den Debug-Anbieter zu verwenden, während Sie Ihre Flutter-App in einer Android-Umgebung ausführen, implementieren Sie den folgenden Code in Ihrer Flutter-Anwendung:

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());
}

Ihre App gibt ein lokales Debug-Token an die Debug-Ausgabe aus, wenn Firebase versucht, eine Anfrage an das Back-End zu senden. Zum Beispiel:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. Wählen Sie im Abschnitt „App-Prüfung“ der Firebase-Konsole im Überlaufmenü Ihrer App Debug-Token verwalten aus. Registrieren Sie dann das Debug-Token, das Sie im vorherigen Schritt angemeldet haben.

    Screenshot des Menüelements Manage Debug Tokens

Nachdem Sie das Token registriert haben, akzeptieren die Firebase-Back-End-Dienste es als gültig.

Netz

Gehen Sie wie folgt vor, um den Debug-Anbieter zu verwenden, während Sie Ihre App von localhost ausführen (z. B. während der Entwicklung):

  1. Aktivieren Sie in der Datei web/index.html den Debug-Modus, indem Sie self.FIREBASE_APPCHECK_DEBUG_TOKEN auf true setzen:

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. Führen Sie Ihre Web-App lokal aus und öffnen Sie das Entwicklertool des Browsers. In der Debug-Konsole sehen Sie ein Debug-Token:

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

    Dieses Token wird lokal in Ihrem Browser gespeichert und immer dann verwendet, wenn Sie Ihre App im selben Browser auf demselben Computer verwenden. Wenn Sie das Token in einem anderen Browser oder auf einem anderen Computer verwenden möchten, setzen Sie self.FIREBASE_APPCHECK_DEBUG_TOKEN auf die Token-Zeichenfolge anstelle von true .

  3. Wählen Sie im Abschnitt „App-Prüfung“ der Firebase-Konsole im Überlaufmenü Ihrer App Debug-Token verwalten aus. Registrieren Sie dann das Debug-Token, das Sie im vorherigen Schritt angemeldet haben.

    Screenshot des Menüelements Manage Debug Tokens

Nachdem Sie das Token registriert haben, akzeptieren die Firebase-Back-End-Dienste es als gültig.

Da dieses Token den Zugriff auf Ihre Firebase-Ressourcen ohne ein gültiges Gerät ermöglicht, ist es wichtig, dass Sie es privat halten. Übertragen Sie es nicht in ein öffentliches Repository, und wenn ein registriertes Token jemals kompromittiert wird, widerrufen Sie es sofort in der Firebase-Konsole.