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

از App Check با ارائه دهنده اشکال زدایی با Flutter استفاده کنید

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

پس از اینکه برنامه خود را برای بررسی برنامه ثبت کردید، برنامه شما معمولاً در یک شبیه ساز یا از یک محیط یکپارچه سازی پیوسته (CI) اجرا نمی شود، زیرا این محیط ها به عنوان دستگاه های معتبر واجد شرایط نیستند. اگر می خواهید برنامه خود را در چنین محیطی در حین توسعه و آزمایش اجرا کنید، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از ارائه دهنده اشکال زدایی App Check به جای ارائه دهنده گواهی واقعی استفاده می کند.

پلتفرم های اپل

برای استفاده از ارائه دهنده اشکال زدایی در حین اجرای برنامه خود در یک شبیه ساز به صورت تعاملی (مثلاً در حین توسعه)، موارد زیر را انجام دهید:

  1. در فایل ios/Runner/AppDelegate.swift (یا AppDelegate.m )، کارخانه ارائه‌دهنده اشکال‌زدایی App Check را در بیلدهای Debug ایجاد و تنظیم کنید:

    سریع

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

    هدف-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. ورود اشکال زدایی را در پروژه Xcode خود (نسخه 11.0 یا جدیدتر) فعال کنید:

    1. محصول > طرح > طرح ویرایش را باز کنید.
    2. از منوی سمت چپ Run را انتخاب کنید و سپس تب Arguments را انتخاب کنید.
    3. در بخش Arguments Passed on Launch ، -FIRDebugEnabled را اضافه کنید.
  3. ios/Runner.xcworkspace با Xcode باز کنید و برنامه خود را در Simulator اجرا کنید. هنگامی که Firebase سعی می کند درخواستی را به backend ارسال کند، برنامه شما یک نشانه اشکال زدایی محلی را در خروجی اشکال زدایی چاپ می کند. مثلا:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. در بخش بررسی برنامه کنسول Firebase، مدیریت نشانه‌های اشکال زدایی را از منوی سرریز برنامه خود انتخاب کنید. سپس، رمز اشکال زدایی را که در مرحله قبل وارد کرده اید، ثبت کنید.

    اسکرین شات آیتم منوی Manage Debug Tokens

پس از ثبت توکن، خدمات پشتیبان Firebase آن را معتبر می‌پذیرند.

از آنجایی که این توکن امکان دسترسی به منابع Firebase شما را بدون دستگاه معتبر فراهم می کند، مهم است که آن را خصوصی نگه دارید. آن را به یک مخزن عمومی متعهد نکنید و اگر یک توکن ثبت شده در معرض خطر قرار گرفت، بلافاصله آن را در کنسول Firebase لغو کنید.

اندروید

برای استفاده از ارائه دهنده اشکال زدایی هنگام اجرای برنامه Flutter خود در محیط اندروید، کد زیر را در برنامه 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 سعی می کند درخواستی را به backend ارسال کند، برنامه شما یک نشانه اشکال زدایی محلی را در خروجی اشکال زدایی چاپ می کند. مثلا:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. در بخش بررسی برنامه کنسول Firebase، مدیریت نشانه‌های اشکال زدایی را از منوی سرریز برنامه خود انتخاب کنید. سپس، رمز اشکال زدایی را که در مرحله قبل وارد کرده اید، ثبت کنید.

    اسکرین شات آیتم منوی 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. در بخش بررسی برنامه کنسول Firebase، مدیریت نشانه‌های اشکال زدایی را از منوی سرریز برنامه خود انتخاب کنید. سپس، رمز اشکال زدایی را که در مرحله قبل وارد کرده اید، ثبت کنید.

    اسکرین شات آیتم منوی Manage Debug Tokens

پس از ثبت توکن، خدمات پشتیبان Firebase آن را معتبر می‌پذیرند.

از آنجایی که این توکن امکان دسترسی به منابع Firebase شما را بدون دستگاه معتبر فراهم می کند، مهم است که آن را خصوصی نگه دارید. آن را به یک مخزن عمومی متعهد نکنید و اگر یک توکن ثبت شده در معرض خطر قرار گرفت، بلافاصله آن را در کنسول Firebase لغو کنید.