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

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

एक एमुलेटर में डिबग प्रदाता का उपयोग करें

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

  1. अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल (आमतौर पर app/build.gradle ) में, ऐप चेक एंड्रॉइड लाइब्रेरी के लिए निर्भरता की घोषणा करें:

    Java

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0'
    }
    
  2. अपने डिबग बिल्ड में, डिबग प्रदाता फ़ैक्टरी का उपयोग करने के लिए ऐप चेक को कॉन्फ़िगर करें:

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());

    Kotlin+KTX

    FirebaseApp.initializeApp(/*context=*/this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance()
    )
  3. ऐप लॉन्च करें और फायरबेस बैकएंड सेवा के लिए कॉल ट्रिगर करें। जब SDK बैकएंड को अनुरोध भेजने का प्रयास करता है तो एक स्थानीय डीबग टोकन लॉग किया जाएगा। उदाहरण के लिए:

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

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

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

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

CI परिवेश में इकाई परीक्षण के लिए डिबग प्रदाता का उपयोग करें

निरंतर एकीकरण (CI) परिवेश में इकाई परीक्षण के लिए डिबग प्रदाता का उपयोग करने के लिए, निम्न कार्य करें:

  1. Firebase कंसोल के ऐप चेक सेक्शन में, अपने ऐप के ओवरफ़्लो मेनू से डिबग टोकन प्रबंधित करें चुनें। फिर, एक नया डीबग टोकन बनाएं। अगले चरण में आपको टोकन की आवश्यकता होगी।

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

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

  2. अपने सीआई सिस्टम के सुरक्षित कुंजी स्टोर (उदाहरण के लिए, गिटहब एक्शन के एन्क्रिप्टेड रहस्य या ट्रैविस सीआई के एन्क्रिप्टेड चर ) में आपके द्वारा अभी बनाए गए डीबग टोकन को जोड़ें।

  3. यदि आवश्यक हो, तो अपने डिबग टोकन को CI परिवेश में पर्यावरण चर के रूप में उपलब्ध कराने के लिए अपने CI सिस्टम को कॉन्फ़िगर करें। वैरिएबल को APP_CHECK_DEBUG_TOKEN_FROM_CI जैसा कुछ नाम दें।

  4. आपके मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर app/build.gradle ) में:

    1. ऐप के लिए परीक्षण निर्भरता की घोषणा करें Android डिबग लाइब्रेरी की जाँच करें:

      Java

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0'
      }
      

      Kotlin+KTX

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0'
      }
      
    2. अपने CI बिल्ड वैरिएंट के कॉन्फ़िगरेशन में निम्नलिखित जोड़ें:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. अपने परीक्षण वर्गों में, किसी भी कोड को लपेटने के लिए DebugAppCheckTestHelper का उपयोग करें जिसे ऐप चेक टोकन की आवश्यकता है:

    Java

    @RunWith(AndroidJunit4.class)
    public class YourTests {
        private final DebugAppCheckTestHelper debugAppCheckTestHelper =
                DebugAppCheckTestHelper.fromInstrumentationArgs();
    
        @Test
        public void testWithDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(() -> {
                // Test code that requires a debug AppCheckToken.
            });
        }
    
        @Test
        public void testWithNonDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(
                    FirebaseApp.getInstance("nonDefaultApp"),
                    () -> {
                        // Test code that requires a debug AppCheckToken.
                    });
        }
    }
    

    Kotlin+KTX

    @RunWith(AndroidJunit4::class)
    class MyTests {
        private val debugAppCheckTestHelper =
            DebugAppCheckTestHelper.fromInstrumentationArgs()
    
        @Test
        fun testWithDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider {
                // Test code that requires a debug AppCheckToken.
            }
        }
    
        @Test
        fun testWithNonDefaultApp() {
            debugAppCheckTestHelper.withDebugProvider(
                FirebaseApp.getInstance("nonDefaultApp")
            ) {
                // Test code that requires a debug AppCheckToken.
            }
        }
    }
    

जब आपका ऐप सीआई वातावरण में चलता है, तो फायरबेस बैकएंड सेवाएं उस टोकन को स्वीकार करेंगी जो इसे मान्य के रूप में भेजता है।