אם, לאחר שרשמתם את האפליקציה שלכם ל-App Check, ברצונכם להפעיל את האפליקציה שלכם בסביבה שבדרך כלל לא תסווג אותה כתקינה, כגון אמולטור במהלך הפיתוח, או מסביבת אינטגרציה מתמשכת (CI), תוכלו צור בניית באגים של האפליקציה שלך המשתמשת בספק ניפוי באגים של App Check במקום בספק אישור אמיתי.
השתמש בספק ניפוי הבאגים באמולטור
כדי להשתמש בספק ניפוי הבאגים בזמן הפעלת האפליקציה שלך באמולטור באופן אינטראקטיבי (במהלך פיתוח, למשל), בצע את הפעולות הבאות:
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
app/build.gradle
), הכריז על התלות של ספריית ה-App Check Android:Kotlin+KTX
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.1.1' }
Java
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.1.1' }
בבניית ניפוי הבאגים, הגדר את App Check לשימוש במפעל של ספק ניפוי הבאגים:
Kotlin+KTX
FirebaseApp.initializeApp(/*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 ינסה לשלוח בקשה ל-backend. לדוגמה:
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 (בדרך כלל
app/build.gradle
):הכריז על תלות הבדיקה של ספריית ניפוי באגים של App Check Android:
Kotlin+KTX
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.1.1' }
Java
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.1.1' }
הוסף את הדברים הבאים לתצורה של גרסת בניית ה-CI שלך:
testInstrumentationRunnerArgument "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 יקבלו את האסימון שהיא שולחת כתקף.