بعد تسجيل تطبيقك في 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.5.1")) // 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، سيستخدم تطبيقك دائمًا الإصدارات المتوافقة من مكتبات Android في 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: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. سيتم تسجيل رمز مميّز محلي لتصحيح الأخطاء عندما تحاول حزمة تطوير البرامج (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، اختَر إدارة الرموز المميّزة لتصحيح الأخطاء من القائمة الكاملة لتطبيقك. بعد ذلك، سجِّل الرمز المميّز لتصحيح الأخطاء الذي سجّلت الدخول باستخدامه في الخطوة السابقة.
بعد تسجيل الرمز المميّز، ستقبله خدمات Firebase الخلفية على أنّه صالح.
وبما أنّ هذا الرمز المميّز يتيح لك الوصول إلى موارد Firebase بدون استخدام جهاز صالح، من الضروري الحفاظ على خصوصيته. لا تُرسِله إلى مستودع علني، وإذا تم اختراق رمز مميّز مسجَّل، عليك إبطاله على الفور في وحدة تحكّم Firebase.
استخدام موفِّر خدمة تصحيح الأخطاء لاختبار الوحدة في بيئة CI
لاستخدام موفِّر تصحيح الأخطاء لاختبار الوحدة في بيئة التكامل المستمر (CI)، عليك اتّباع الخطوات التالية:
في القسم App Check ضمن وحدة تحكّم Firebase، اختَر إدارة الرموز المميّزة لتصحيح الأخطاء من القائمة الكاملة لتطبيقك. بعد ذلك، أنشئ رمزًا مميّزًا جديدًا لتصحيح الأخطاء. ستحتاج إلى الرمز المميز في الخطوة التالية.
ولأن هذا الرمز يتيح إمكانية الوصول إلى موارد 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.5.1")) // 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، سيستخدم تطبيقك دائمًا الإصدارات المتوافقة من مكتبات Android في 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:18.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.5.1")) // 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 الخلفية الرمز المميّز الذي ترسله على أنّه صالح.