بعد تسجيل تطبيقك في App Check، إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها App Check عادةً على أنّها صالحة، مثل المحاكي أثناء التطوير أو من بيئة التكامل المستمر (CI)، يمكنك إنشاء إصدار تصحيح أخطاء من تطبيقك يستخدم مزوّد تصحيح أخطاء App Check بدلاً من مزوّد إثبات الهوية الحقيقي.
استخدام مقدّم تصحيح الأخطاء في المحاكي
لاستخدام موفِّر تصحيح الأخطاء أثناء تشغيل تطبيقك في المحاكي بشكل تفاعلي (أثناء التطوير مثلاً)، اتّبِع الخطوات التالية:
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
)، أضِف الاعتمادية لمكتبة App Check لنظام التشغيل Android. ننصحك باستخدام الرمز Firebase Android BoM للتحكّم في إصدارات المكتبة.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.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 لنظام التشغيل Android.
(بديل) إضافة تبعيات مكتبة 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:18.0.0") }
في إصدار تصحيح الأخطاء، اضبط App Check لاستخدام موفِّر تصحيح الأخطاء المصنع:
Kotlin+KTX
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
افتح التطبيق وأدخِل طلبًا إلى خدمة خلفية في Firebase. سيتم تسجيل رمز مفتاح تمييز debugging محلي عند محاولة حزمة SDK إرسال طلب إلى الخلفي. على سبيل المثال:
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، اختَر إدارة الرموز المميّزة لتصحيح الأخطاء من قائمةoverflow (العناصر الإضافية) في تطبيقك. بعد ذلك، سجِّل الرمز المميّز لتصحيح الأخطاء الذي سجّلت الدخول باستخدامه في الخطوة السابقة.
بعد تسجيل الرمز المميّز، ستقبل خدمات الخلفية في Firebase هذا الرمز على أنّه صالح.
بما أنّ هذا الرمز المميّز يسمح بالوصول إلى موارد Firebase بدون استخدام جهاز صالح، من المهم الحفاظ على سريته. لا تُرسِله إلى مستودع علني، وإذا تم اختراق رمز مميّز مسجَّل، عليك إبطاله على الفور في وحدة تحكّم Firebase.
استخدام موفِّر تصحيح الأخطاء لاختبار الوحدة في بيئة التطوير المتكامل
لاستخدام موفِّر تصحيح الأخطاء لاختبار الوحدة في بيئة التكامل المستمر (CI)، عليك اتّباع الخطوات التالية:
في قسم App Check من وحدة تحكّم Firebase، اختَر إدارة الرموز المميّزة لتصحيح الأخطاء من قائمةoverflow (العناصر الإضافية) في تطبيقك. بعد ذلك، أنشئ رمزًا مميّزًا جديدًا لتصحيح الأخطاء. ستحتاج إلى الرمز المميّز في الخطوة التالية.
بما أنّ هذا الرمز المميّز يسمح بالوصول إلى موارد Firebase بدون جهاز صالح، من المهم الحفاظ على سريته. لا تُرسِله إلى مستودع علني، وإذا تم اختراق رمز مميّز مسجَّل، عليك إبطاله على الفور في وحدة تحكّم Firebase.
أضِف رمز التفعيل الخاص بتصحيح الأخطاء الذي أنشأته للتو إلى متجر المفاتيح الآمن لنظام التطوير المتكامل (CI) (على سبيل المثال، السمات المشفَّرة في GitHub Actions أو المتغيّرات المشفَّرة في Travis CI).
إذا لزم الأمر، اضبط نظام التطوير المتكامل (CI) لإتاحة رمز التفعيل لتصحيح الأخطاء داخل بيئة التطوير المتكامل كمتغيّر بيئة. أدخِل اسمًا للمتغيّر، مثل
APP_CHECK_DEBUG_TOKEN_FROM_CI
.في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
)، أضِف الاعتمادية لمكتبة App Check لنظام التشغيل Android. ننصحك باستخدام الرمز Firebase Android BoM للتحكّم في إصدارات المكتبة.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.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 لنظام التشغيل Android.
(بديل) إضافة تبعيات مكتبة 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:18.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.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 لنظام التشغيل Android.
(بديل) إضافة تبعيات مكتبة 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:18.0.0") }
أضِف ما يلي إلى إعدادات الصيغة في عملية الإنشاء في "التكامل المستمر":
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
في فئات الاختبار، استخدِم
DebugAppCheckTestHelper
لتغليف أي رمز يحتاج إلى رمز App Check المميّز: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 على الرمز المميّز الذي يرسله كرمز صالح.