যদি, আপনি অ্যাপ চেকের জন্য আপনার অ্যাপ নিবন্ধন করার পরে, আপনি এমন পরিবেশে আপনার অ্যাপ চালাতে চান যা অ্যাপ চেক সাধারণত বৈধ হিসাবে শ্রেণীবদ্ধ করে না, যেমন ডেভেলপমেন্টের সময় একটি এমুলেটর, বা একটি ক্রমাগত ইন্টিগ্রেশন (CI) পরিবেশ থেকে, আপনি করতে পারেন আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করুন যা প্রকৃত সত্যায়ন প্রদানকারীর পরিবর্তে অ্যাপ চেক ডিবাগ প্রদানকারী ব্যবহার করে।
একটি এমুলেটরে ডিবাগ প্রদানকারী ব্যবহার করুন
একটি এমুলেটরে ইন্টারেক্টিভভাবে আপনার অ্যাপ চালানোর সময় ডিবাগ প্রদানকারী ব্যবহার করতে (উদাহরণস্বরূপ, উন্নয়নের সময়), নিম্নলিখিতগুলি করুন:
আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত
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' }
আপনার ডিবাগ বিল্ডে, ডিবাগ প্রদানকারী কারখানা ব্যবহার করতে অ্যাপ চেক কনফিগার করুন:
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());
অ্যাপটি চালু করুন এবং একটি Firebase ব্যাকএন্ড পরিষেবাতে একটি কল ট্রিগার করুন। যখন SDK ব্যাকএন্ডে একটি অনুরোধ পাঠানোর চেষ্টা করবে তখন একটি স্থানীয় ডিবাগ টোকেন লগ করা হবে। উদাহরণ স্বরূপ:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
Firebase কনসোলের অ্যাপ চেক বিভাগে, আপনার অ্যাপের ওভারফ্লো মেনু থেকে ডিবাগ টোকেন পরিচালনা করুন বেছে নিন। তারপরে, আপনি আগের ধাপে লগ ইন করা ডিবাগ টোকেনটি নিবন্ধন করুন৷
আপনি টোকেন নিবন্ধন করার পরে, ফায়ারবেস ব্যাকএন্ড পরিষেবাগুলি এটিকে বৈধ হিসাবে গ্রহণ করবে।
যেহেতু এই টোকেনটি একটি বৈধ ডিভাইস ছাড়াই আপনার Firebase সংস্থানগুলিতে অ্যাক্সেসের অনুমতি দেয়, এটি আপনার ব্যক্তিগত রাখা অত্যন্ত গুরুত্বপূর্ণ। এটিকে কোনো পাবলিক রিপোজিটরিতে কমিট করবেন না এবং যদি কোনো রেজিস্টার্ড টোকেন কখনো আপস করা হয়, ফায়ারবেস কনসোলে তা অবিলম্বে প্রত্যাহার করুন।
একটি CI পরিবেশে ইউনিট পরীক্ষার জন্য ডিবাগ প্রদানকারী ব্যবহার করুন
ক্রমাগত ইন্টিগ্রেশন (CI) পরিবেশে ইউনিট পরীক্ষার জন্য ডিবাগ প্রদানকারী ব্যবহার করতে, নিম্নলিখিতগুলি করুন:
Firebase কনসোলের অ্যাপ চেক বিভাগে, আপনার অ্যাপের ওভারফ্লো মেনু থেকে ডিবাগ টোকেন পরিচালনা করুন বেছে নিন। তারপর, একটি নতুন ডিবাগ টোকেন তৈরি করুন। পরবর্তী ধাপে আপনার টোকেন প্রয়োজন হবে।
যেহেতু এই টোকেনটি একটি বৈধ ডিভাইস ছাড়াই আপনার Firebase সংস্থানগুলিতে অ্যাক্সেসের অনুমতি দেয়, এটি আপনার ব্যক্তিগত রাখা অত্যন্ত গুরুত্বপূর্ণ। এটিকে কোনো পাবলিক রিপোজিটরিতে কমিট করবেন না এবং যদি কোনো রেজিস্টার্ড টোকেন কখনো আপস করা হয়, ফায়ারবেস কনসোলে তা অবিলম্বে প্রত্যাহার করুন।
আপনার CI সিস্টেমের সুরক্ষিত কী স্টোরে আপনার তৈরি করা ডিবাগ টোকেন যোগ করুন (উদাহরণস্বরূপ, GitHub অ্যাকশনের এনক্রিপ্ট করা গোপনীয়তা বা Travis CI এর এনক্রিপ্ট করা ভেরিয়েবল )।
প্রয়োজনে, আপনার ডিবাগ টোকেনকে পরিবেশের পরিবর্তনশীল হিসাবে CI পরিবেশের মধ্যে উপলব্ধ করতে আপনার CI সিস্টেম কনফিগার করুন।
APP_CHECK_DEBUG_TOKEN_FROM_CI
এর মত কিছু ভেরিয়েবলের নাম দিন।আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইল (সাধারণত
app/build.gradle
):অ্যাপ চেক অ্যান্ড্রয়েড ডিবাগ লাইব্রেরির জন্য পরীক্ষা নির্ভরতা ঘোষণা করুন:
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' }
আপনার CI বিল্ড ভেরিয়েন্টের কনফিগারেশনে নিম্নলিখিত যোগ করুন:
testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
আপনার পরীক্ষার ক্লাসে, অ্যাপ চেক টোকেন প্রয়োজন এমন যেকোনো কোড মোড়ানোর জন্য
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 ব্যাকএন্ড পরিষেবাগুলি এটি পাঠানো টোকেনটিকে বৈধ হিসাবে গ্রহণ করবে৷