إذا كنت ترغب ، بعد تسجيل تطبيقك في App Check ، في تشغيل التطبيق في بيئة لا يصنفها App Check عادةً على أنها صالحة ، مثل المحاكي أثناء التطوير ، أو من بيئة تكامل مستمرة (CI) ، يمكنك إنشاء إصدار تصحيح لتطبيقك يستخدم موفر تصحيح أخطاء App Check بدلاً من موفر تصديق حقيقي.
استخدم موفر التصحيح في محاكي
لاستخدام موفر تصحيح الأخطاء أثناء تشغيل تطبيقك في محاكي بشكل تفاعلي (أثناء التطوير ، على سبيل المثال) ، قم بما يلي:
في ملف Gradle (على مستوى التطبيق) الوحدة النمطية الخاصة بك (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
) ، أضف تبعية التحقق من التطبيق مكتبة Android. نوصي باستخدام Firebase Android BoM للتحكم في إصدارات المكتبة.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.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")
implementation("com.google.firebase:firebase-appcheck-ktx") }باستخدام 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:17.0.1")
implementation("com.google.firebase:firebase-appcheck-ktx:17.0.1") }Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.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 ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات 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:17.0.1") }
في إصدار التصحيح الخاص بك ، قم بتكوين التحقق من التطبيق لاستخدام مصنع موفر تصحيح الأخطاء:
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
في قسم التحقق من التطبيق في وحدة تحكم Firebase ، اختر إدارة الرموز المميزة لتصحيح الأخطاء من القائمة الكاملة لتطبيقك. بعد ذلك ، قم بتسجيل رمز التصحيح المميز الذي قمت بتسجيل الدخول إليه في الخطوة السابقة.
بعد تسجيل الرمز المميز ، ستقبله خدمات Firebase الخلفية على أنه صالح.
نظرًا لأن هذا الرمز المميز يسمح بالوصول إلى موارد Firebase الخاصة بك بدون جهاز صالح ، فمن الأهمية بمكان أن تحافظ على خصوصيتها. لا تلزمه بمستودع عام ، وإذا تم اختراق رمز مميز مسجل ، فقم بإلغائه على الفور في وحدة تحكم Firebase.
استخدم موفر التصحيح لاختبار الوحدة في بيئة CI
لاستخدام موفر تصحيح الأخطاء لاختبار الوحدة في بيئة تكامل مستمر (CI) ، قم بما يلي:
في قسم التحقق من التطبيق في وحدة تحكم Firebase ، اختر إدارة الرموز المميزة لتصحيح الأخطاء من القائمة الكاملة لتطبيقك. ثم قم بإنشاء رمز مميز جديد لتصحيح الأخطاء. ستحتاج إلى الرمز المميز في الخطوة التالية.
نظرًا لأن هذا الرمز المميز يسمح بالوصول إلى موارد 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 مكتبة Android. نوصي باستخدام Firebase Android BoM للتحكم في إصدارات المكتبة.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing") }
باستخدام 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 androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing") }
باستخدام 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 androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1") }
أضف ما يلي إلى تكوين متغير بناء CI الخاص بك:
testInstrumentationRunnerArguments["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 الخلفية الرمز المميز الذي يرسله على أنه صالح.