اگر پس از ثبت برنامه خود برای App Check ، میخواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر طبقهبندی نمیکند، مانند یک شبیهساز در حین توسعه، یا از یک محیط یکپارچهسازی مداوم (CI)، میتوانید یک نسخه اشکالزدایی از برنامه خود ایجاد کنید که از ارائهدهنده اشکالزدایی App Check به جای یک ارائهدهنده گواهی واقعی استفاده میکند.
از ارائه دهنده اشکال زدایی در یک شبیه ساز استفاده کنید
برای استفاده از ارائهدهندهی اشکالزدایی هنگام اجرای تعاملی برنامه در یک شبیهساز (مثلاً در طول توسعه)، موارد زیر را انجام دهید:
در فایل Gradle ماژول (سطح برنامه) خود (معمولاً
<project>/<app-module>/build.gradle.ktsیا<project>/<app-module>/build.gradle)، وابستگی مربوط به کتابخانه App Check برای اندروید را اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.5.0")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخههای سازگار کتابخانههای اندروید Firebase استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه Firebase بدون استفاده از BoM
اگر تصمیم به استفاده از Firebase BoM ندارید، باید هر نسخه از کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده میکنید، اکیداً توصیه میکنیم از BoM برای مدیریت نسخههای کتابخانه استفاده کنید، که تضمین میکند همه نسخهها سازگار هستند.
dependencies { // Add the dependencies for the App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.0.1") }
در نسخه اشکالزدایی (debug build)، App Check را طوری پیکربندی کنید که از debug provider factory استفاده کند:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
برنامه را اجرا کنید و یک فراخوانی به سرویس backend فایربیس انجام دهید. وقتی SDK سعی میکند درخواستی به backend ارسال کند، یک توکن اشکالزدایی محلی ثبت میشود. برای مثال:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
در بخش App Check در کنسول Firebase ، از منوی سرریز برنامه خود، گزینه مدیریت توکنهای اشکالزدایی (Manage debug tokens) را انتخاب کنید. سپس، توکن اشکالزدایی (debug token) که در مرحله قبل وارد کردهاید را ثبت کنید.

پس از ثبت توکن، سرویسهای بکاند فایربیس آن را به عنوان توکن معتبر میپذیرند.
از آنجا که این توکن امکان دسترسی به منابع Firebase شما را بدون دستگاه معتبر فراهم میکند، بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی ثبت نکنید و اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را در کنسول Firebase لغو کنید.
استفاده از ارائهدهندهی اشکالزدایی برای تست واحد در محیط CI
برای استفاده از ارائهدهنده اشکالزدایی برای تست واحد در یک محیط یکپارچهسازی مداوم (CI)، موارد زیر را انجام دهید:
در بخش App Check در کنسول Firebase ، از منوی بالای برنامه خود، گزینه مدیریت توکنهای اشکالزدایی (Manage debug tokens) را انتخاب کنید. سپس، یک توکن اشکالزدایی جدید ایجاد کنید. در مرحله بعدی به این توکن نیاز خواهید داشت.
از آنجا که این توکن امکان دسترسی به منابع Firebase شما را بدون دستگاه معتبر فراهم میکند، بسیار مهم است که آن را خصوصی نگه دارید. آن را در یک مخزن عمومی ثبت نکنید و اگر یک توکن ثبت شده به خطر افتاد، فوراً آن را در کنسول Firebase لغو کنید.

توکن اشکالزدایی که ایجاد کردهاید را به مخزن کلید امن سیستم CI خود اضافه کنید (برای مثال، اسرار رمزگذاریشدهی GitHub Actions یا متغیرهای رمزگذاریشدهی Travis CI).
در صورت لزوم، سیستم CI خود را پیکربندی کنید تا توکن اشکالزدایی شما به عنوان یک متغیر محیطی در محیط CI در دسترس باشد. نام متغیر را چیزی مانند
APP_CHECK_DEBUG_TOKEN_FROM_CIبگذارید.در فایل Gradle ماژول (سطح برنامه) خود (معمولاً
<project>/<app-module>/build.gradle.ktsیا<project>/<app-module>/build.gradle)، وابستگی مربوط به کتابخانه App Check برای اندروید را اضافه کنید. توصیه میکنیم از Firebase Android BoM برای کنترل نسخهبندی کتابخانه استفاده کنید.Kotlin
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.5.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخههای سازگار کتابخانههای اندروید Firebase استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه Firebase بدون استفاده از BoM
اگر تصمیم به استفاده از Firebase BoM ندارید، باید هر نسخه از کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده میکنید، اکیداً توصیه میکنیم از BoM برای مدیریت نسخههای کتابخانه استفاده کنید، که تضمین میکند همه نسخهها سازگار هستند.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.0.1") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.5.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
با استفاده از Firebase Android BoM ، برنامه شما همیشه از نسخههای سازگار کتابخانههای اندروید Firebase استفاده خواهد کرد.
(جایگزین) اضافه کردن وابستگیهای کتابخانه Firebase بدون استفاده از BoM
اگر تصمیم به استفاده از Firebase BoM ندارید، باید هر نسخه از کتابخانه Firebase را در خط وابستگی آن مشخص کنید.
توجه داشته باشید که اگر از چندین کتابخانه Firebase در برنامه خود استفاده میکنید، اکیداً توصیه میکنیم از BoM برای مدیریت نسخههای کتابخانه استفاده کنید، که تضمین میکند همه نسخهها سازگار هستند.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.0.1") }
موارد زیر را به پیکربندی نسخه ساخت CI خود اضافه کنید:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""در کلاسهای تست خود، از
DebugAppCheckTestHelperبرای قرار دادن هر کدی که به توکن App Check نیاز دارد، استفاده کنید:Kotlin
@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 اجرا میشود، سرویسهای Backend فایربیس توکنی را که ارسال میکند به عنوان توکن معتبر میپذیرند.