שימוש ב-App Check עם ספק ניפוי הבאגים ב-Flutter

אחרי שתירשמו את האפליקציה ל-App Check, בדרך כלל היא לא תפעל במהדמ או בסביבת אינטגרציה רציפה (CI), כי הסביבות האלה לא עומדות בדרישות של מכשירי תקינים. אם רוצים להריץ את האפליקציה בסביבה כזו במהלך הפיתוח והבדיקה, אפשר ליצור גרסת build לניפוי באגים של האפליקציה שמשתמשת בספק ניפוי הבאגים של בדיקת האפליקציות במקום בספק אימות אמיתי.

פלטפורמות של Apple

כדי להשתמש בספק ניפוי הבאגים בזמן הפעלת האפליקציה בסימולטור באופן אינטראקטיבי (למשל, במהלך הפיתוח), מבצעים את הפעולות הבאות:

  1. מפעילים את App Check עם ספק ניפוי הבאגים מיד אחרי שמאתחלים את אפליקציית Firebase:

    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(
        // Set appleProvider to `AppleProvider.debug`
        appleProvider: AppleProvider.debug,
      );
      runApp(App());
    }
    
  2. הפעלת רישום ביומן של ניפוי באגים בפרויקט Xcode (גרסה 11.0 ואילך):

    1. פותחים את מוצר > סכימה > עריכת סכמה.
    2. בתפריט הימני, בוחרים באפשרות הפעלה ואז בכרטיסייה ארגומנטים.
    3. בקטע Arguments Passed on Launch, מוסיפים את הערך -FIRDebugEnabled.
  3. פותחים את ios/Runner.xcworkspace באמצעות Xcode ומריצים את האפליקציה בסימולטור. האפליקציה תדפיס אסימון ניפוי באגים מקומי לפלט ניפוי הבאגים כש-Firebase ינסה לשלוח בקשה לקצה העורפי. לדוגמה:

    Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. בקטע App Check במסוף Firebase, בוחרים באפשרות Manage debug tokens בתפריט ההזזה למעלה של האפליקציה. לאחר מכן, רושמים את אסימון ניפוי הבאגים שתועד בשלב הקודם.

    צילום מסך של האפשרות Manage Debug Tokens בתפריט

אחרי שתירשמו את האסימון, שירותי הקצה העורפי של Firebase יקבלו אותו כתקף.

האסימון הזה מאפשר גישה למשאבי Firebase ללא מכשיר תקין, ולכן חשוב לשמור על הפרטיות שלו. אל תיצרו לו גירסה במאגר ציבורי, ואם אסימון רשום נפרץ, צריך לבטל אותו מיד במסוף Firebase.

Android

כדי להשתמש בספק ניפוי הבאגים בזמן הריצה של אפליקציית Flutter בסביבת Android, צריך להטמיע את הקוד הבא באפליקציית Flutter:

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

האפליקציה תדפיס אסימון ניפוי באגים מקומי לפלט ניפוי הבאגים כש-Firebase תנסה לשלוח בקשה לקצה העורפי. לדוגמה:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. בקטע App Check במסוף Firebase, בוחרים באפשרות Manage debug tokens בתפריט ההזזה למעלה של האפליקציה. לאחר מכן רושמים את האסימון לניפוי באגים שיצרתם בשלב הקודם.

    צילום מסך של האפשרות Manage Debug Tokens בתפריט

אחרי שתירשמו את האסימון, שירותי הקצה העורפי של Firebase יקבלו אותו כתקף.

אינטרנט

כדי להשתמש בספק ניפוי הבאגים בזמן הפעלת האפליקציה מ-localhost (לדוגמה, במהלך הפיתוח), מבצעים את הפעולות הבאות:

  1. בקובץ web/index.html, מפעילים את מצב ניפוי הבאגים על ידי הגדרת self.FIREBASE_APPCHECK_DEBUG_TOKEN ל-true:

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. מריצים את אפליקציית האינטרנט באופן מקומי ופותחים את כלי הפיתוח של הדפדפן. במסוף ניפוי הבאגים יופיע אסימון ניפוי באגים:

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

    האסימון הזה נשמר באופן מקומי בדפדפן, והוא ישמש בכל פעם שתשתמשו באפליקציה באותו דפדפן באותו מחשב. אם רוצים להשתמש באסימון בדפדפן אחר או במכונה אחרת, צריך להגדיר את self.FIREBASE_APPCHECK_DEBUG_TOKEN למחרוזת האסימון במקום ל-true.

  3. בקטע App Check במסוף Firebase, בוחרים באפשרות Manage debug tokens בתפריט ההזזה למעלה של האפליקציה. לאחר מכן, רושמים את אסימון ניפוי הבאגים שתועד בשלב הקודם.

    צילום מסך של האפשרות Manage Debug Tokens בתפריט

אחרי שתירשמו את האסימון, שירותי הקצה העורפי של Firebase יקבלו אותו כתקף.

האסימון הזה מאפשר גישה למשאבי Firebase ללא מכשיר תקין, ולכן חשוב לשמור על הפרטיות שלו. אסור לשמור אותו למאגר ציבורי. אם אסימון רשום נפרץ, אתם צריכים לבטל אותו מיד במסוף Firebase.