Catch up on highlights from Firebase at Google I/O 2023. Learn more

অ্যান্ড্রয়েডে ডিবাগ প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করুন

যদি, আপনি অ্যাপ চেকের জন্য আপনার অ্যাপ নিবন্ধন করার পরে, আপনি এমন পরিবেশে আপনার অ্যাপ চালাতে চান যা অ্যাপ চেক সাধারণত বৈধ হিসাবে শ্রেণীবদ্ধ করে না, যেমন ডেভেলপমেন্টের সময় একটি এমুলেটর, বা একটি ক্রমাগত ইন্টিগ্রেশন (CI) পরিবেশ থেকে, আপনি করতে পারেন আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করুন যা প্রকৃত সত্যায়ন প্রদানকারীর পরিবর্তে অ্যাপ চেক ডিবাগ প্রদানকারী ব্যবহার করে।

একটি এমুলেটরে ডিবাগ প্রদানকারী ব্যবহার করুন

একটি এমুলেটরে ইন্টারেক্টিভভাবে আপনার অ্যাপ চালানোর সময় ডিবাগ প্রদানকারী ব্যবহার করতে (উদাহরণস্বরূপ, উন্নয়নের সময়), নিম্নলিখিতগুলি করুন:

  1. আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত app/build.gradle ), অ্যাপ চেক অ্যান্ড্রয়েড লাইব্রেরির জন্য নির্ভরতা ঘোষণা করুন:

    Kotlin+KTX

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

    Java

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:17.0.1'
    }
    
  2. আপনার ডিবাগ বিল্ডে, ডিবাগ প্রদানকারী কারখানা ব্যবহার করতে অ্যাপ চেক কনফিগার করুন:

    Kotlin+KTX

    Firebase.initialize(context = this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
  3. অ্যাপটি চালু করুন এবং একটি Firebase ব্যাকএন্ড পরিষেবাতে একটি কল ট্রিগার করুন। যখন 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. আপনার CI সিস্টেমের সুরক্ষিত কী স্টোরে আপনার তৈরি করা ডিবাগ টোকেন যোগ করুন (উদাহরণস্বরূপ, GitHub অ্যাকশনের এনক্রিপ্ট করা গোপনীয়তা বা Travis CI এর এনক্রিপ্ট করা ভেরিয়েবল )।

  3. প্রয়োজনে, আপনার ডিবাগ টোকেনকে পরিবেশের পরিবর্তনশীল হিসাবে CI পরিবেশের মধ্যে উপলব্ধ করতে আপনার CI সিস্টেম কনফিগার করুন। APP_CHECK_DEBUG_TOKEN_FROM_CI এর মত কিছু ভেরিয়েবলের নাম দিন।

  4. আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইল (সাধারণত app/build.gradle ):

    1. অ্যাপ চেক অ্যান্ড্রয়েড ডিবাগ লাইব্রেরির জন্য পরীক্ষা নির্ভরতা ঘোষণা করুন:

      Kotlin+KTX

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

      Java

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:17.0.1'
      }
      
    2. আপনার CI বিল্ড ভেরিয়েন্টের কনফিগারেশনে নিম্নলিখিত যোগ করুন:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. আপনার পরীক্ষার ক্লাসে, অ্যাপ চেক টোকেন প্রয়োজন এমন যেকোনো কোড মোড়ানোর জন্য DebugAppCheckTestHelper ব্যবহার করুন:

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

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

যখন আপনার অ্যাপটি একটি CI পরিবেশে চলে, তখন Firebase ব্যাকএন্ড পরিষেবাগুলি এটি পাঠানো টোকেনটিকে বৈধ হিসাবে গ্রহণ করবে৷