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

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

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

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

  1. بلافاصله پس از راه‌اندازی اولیه برنامه Firebase، با ارائه‌دهنده اشکال‌زدایی (debug provider) تماس بگیرید و برنامه را فعال کنید:

    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 (نسخه ۱۱.۰ یا جدیدتر):

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

    Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. در بخش App Check در کنسول Firebase ، از منوی سرریز برنامه خود، گزینه مدیریت توکن‌های اشکال‌زدایی (Manage debug tokens) را انتخاب کنید. سپس، توکن اشکال‌زدایی (debug token) که در مرحله قبل وارد کرده‌اید را ثبت کنید.

    تصویر از آیتم منوی مدیریت توکن‌های اشکال‌زدایی

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

از آنجا که این توکن امکان دسترسی به منابع 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. در بخش App Check در کنسول Firebase ، از منوی سرریز برنامه خود، گزینه مدیریت توکن‌های اشکال‌زدایی (Manage debug tokens) را انتخاب کنید. سپس، توکن اشکال‌زدایی (debug token) که در مرحله قبل وارد کرده‌اید را ثبت کنید.

    تصویر از آیتم منوی مدیریت توکن‌های اشکال‌زدایی

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

وب

برای استفاده از ارائه‌دهنده‌ی اشکال‌زدایی هنگام اجرای برنامه از 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.

    این توکن به صورت محلی در مرورگر شما ذخیره می‌شود و هر زمان که از برنامه خود در همان مرورگر روی همان دستگاه استفاده کنید، استفاده خواهد شد. اگر می‌خواهید از این توکن در مرورگر یا دستگاه دیگری استفاده کنید، به جای true ، مقدار self.FIREBASE_APPCHECK_DEBUG_TOKEN را روی رشته توکن تنظیم کنید.

  3. در بخش App Check در کنسول Firebase ، از منوی سرریز برنامه خود، گزینه مدیریت توکن‌های اشکال‌زدایی (Manage debug tokens) را انتخاب کنید. سپس، توکن اشکال‌زدایی (debug token) که در مرحله قبل وارد کرده‌اید را ثبت کنید.

    تصویر از آیتم منوی مدیریت توکن‌های اشکال‌زدایی

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

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