Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Flutter के साथ डिबग प्रदाता के साथ ऐप चेक का उपयोग करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

ऐप चेक के लिए अपना ऐप पंजीकृत करने के बाद, आपका ऐप आम तौर पर एक एमुलेटर या निरंतर एकीकरण (सीआई) वातावरण से नहीं चलेगा, क्योंकि वे वातावरण मान्य डिवाइस के रूप में योग्य नहीं हैं। यदि आप विकास और परीक्षण के दौरान अपने ऐप को ऐसे वातावरण में चलाना चाहते हैं, तो आप अपने ऐप का डिबग बिल्ड बना सकते हैं जो वास्तविक सत्यापन प्रदाता के बजाय ऐप चेक डीबग प्रदाता का उपयोग करता है।

ऐप्पल प्लेटफॉर्म

सिम्युलेटर में इंटरैक्टिव रूप से अपना ऐप चलाते समय डीबग प्रदाता का उपयोग करने के लिए (उदाहरण के लिए, विकास के दौरान), निम्न कार्य करें:

  1. फ़ाइल ios/Runner/AppDelegate.swift (या AppDelegate.m ) में, डीबग बिल्ड में ऐप चेक डीबग प्रदाता फ़ैक्टरी बनाएं और सेट करें:

    तीव्र

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

    उद्देश्य सी

    #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 प्रोजेक्ट (v11.0 या नए) में डीबग लॉगिंग सक्षम करें:

    1. उत्पाद > योजना > योजना संपादित करें खोलें।
    2. बाएं मेनू से चलाएँ चुनें, फिर तर्क टैब चुनें।
    3. लॉन्च सेक्शन में पारित तर्क में, -FIRDebugEnabled जोड़ें।
  3. Xcode के साथ ios/Runner.xcworkspace खोलें और सिम्युलेटर में अपना ऐप चलाएं। जब फायरबेस बैकएंड को अनुरोध भेजने की कोशिश करता है, तो आपका ऐप डिबग आउटपुट में एक स्थानीय डिबग टोकन प्रिंट करेगा। उदाहरण के लिए:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Firebase कंसोल के ऐप चेक सेक्शन में, अपने ऐप के ओवरफ़्लो मेनू से डिबग टोकन प्रबंधित करें चुनें। फिर, पिछले चरण में आपके द्वारा लॉग किए गए डिबग टोकन को पंजीकृत करें।

    डीबग टोकन प्रबंधित करें मेनू आइटम का स्क्रीनशॉट

आपके द्वारा टोकन पंजीकृत करने के बाद, फायरबेस बैकएंड सेवाएं इसे मान्य मान लेंगी।

चूंकि यह टोकन वैध डिवाइस के बिना आपके फायरबेस संसाधनों तक पहुंच की अनुमति देता है, इसलिए यह महत्वपूर्ण है कि आप इसे निजी रखें। इसे किसी सार्वजनिक रिपॉजिटरी के लिए प्रतिबद्ध न करें, और यदि किसी पंजीकृत टोकन के साथ कभी समझौता किया जाता है, तो इसे तुरंत 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(
    webRecaptchaSiteKey: 'recaptcha-v3-site-key',
    // Set androidProvider to `AndroidProvider.debug`
    androidProvider: AndroidProvider.debug,
  );
  runApp(App());
}

जब फायरबेस बैकएंड को अनुरोध भेजने की कोशिश करता है, तो आपका ऐप डिबग आउटपुट में एक स्थानीय डिबग टोकन प्रिंट करेगा। उदाहरण के लिए:

D DebugAppCheckProvider: Enter this debug secret into the allow list in
the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  1. 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 कंसोल के ऐप चेक सेक्शन में, अपने ऐप के ओवरफ़्लो मेनू से डिबग टोकन प्रबंधित करें चुनें। फिर, पिछले चरण में आपके द्वारा लॉग किए गए डिबग टोकन को पंजीकृत करें।

    डीबग टोकन प्रबंधित करें मेनू आइटम का स्क्रीनशॉट

आपके द्वारा टोकन पंजीकृत करने के बाद, फायरबेस बैकएंड सेवाएं इसे मान्य मान लेंगी।

चूंकि यह टोकन वैध डिवाइस के बिना आपके फायरबेस संसाधनों तक पहुंच की अनुमति देता है, इसलिए यह महत्वपूर्ण है कि आप इसे निजी रखें। इसे किसी सार्वजनिक रिपॉजिटरी के लिए प्रतिबद्ध न करें, और यदि किसी पंजीकृत टोकन के साथ कभी समझौता किया जाता है, तो इसे तुरंत Firebase कंसोल में रद्द कर दें।