השתמש ב-App Check עם ספק ניפוי הבאגים ב-Android

אם, לאחר שרשמתם את האפליקציה שלכם ל-App Check, ברצונכם להפעיל את האפליקציה שלכם בסביבה שבדרך כלל לא תסווג אותה כתקינה, כגון אמולטור במהלך הפיתוח, או מסביבת אינטגרציה מתמשכת (CI), תוכלו צור בניית באגים של האפליקציה שלך המשתמשת בספק ניפוי באגים של App Check במקום בספק אישור אמיתי.

השתמש בספק ניפוי הבאגים באמולטור

כדי להשתמש בספק ניפוי הבאגים בזמן הפעלת האפליקציה שלך באמולטור באופן אינטראקטיבי (במהלך פיתוח, למשל), בצע את הפעולות הבאות:

  1. בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle ), הוסף את התלות עבור בדיקת האפליקציה ספרייה עבור אנדרואיד. אנו ממליצים להשתמש ב- Firebase Android BoM כדי לשלוט בגירסאות של הספרייה.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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:17.1.2")
    }
    
    מחפש מודול ספרייה ספציפי לקוטלין? החל מאוקטובר 2023 (Firebase BoM 32.5.0) , מפתחי Kotlin ו-Java יכולים להיות תלויים במודול הספרייה הראשי (לפרטים, עיין בשאלות הנפוצות לגבי יוזמה זו ).

  2. בבניית ניפוי הבאגים, הגדר את 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());
  3. הפעל את האפליקציה והפעל קריאה לשירות אחורי של 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
  4. בקטע בדיקת אפליקציות של מסוף Firebase, בחר נהל אסימוני ניפוי באגים מתפריט ההצפה של האפליקציה שלך. לאחר מכן, רשום את אסימון ניפוי הבאגים שהתחברת בשלב הקודם.

    צילום מסך של פריט התפריט Manage Debug Tokens

לאחר שתרשום את האסימון, שירותי הקצה האחורי של Firebase יקבלו אותו כתקף.

מכיוון שהאסימון הזה מאפשר גישה למשאבי Firebase שלך ​​ללא מכשיר חוקי, חיוני לשמור אותו פרטי. אל תחייב אותו למאגר ציבורי, ואם אסימון רשום נפגע אי פעם, בטל אותו מיד במסוף Firebase.

השתמש בספק ניפוי הבאגים לבדיקת יחידות בסביבת CI

כדי להשתמש בספק ניפוי הבאגים לבדיקת יחידות בסביבת אינטגרציה מתמשכת (CI), בצע את הפעולות הבאות:

  1. בקטע בדיקת אפליקציות של מסוף Firebase, בחר נהל אסימוני ניפוי באגים מתפריט ההצפה של האפליקציה שלך. לאחר מכן, צור אסימון ניפוי באגים חדש. תצטרך את האסימון בשלב הבא.

    מכיוון שהאסימון הזה מאפשר גישה למשאבי Firebase שלך ​​ללא מכשיר חוקי, חיוני לשמור אותו פרטי. אל תחייב אותו למאגר ציבורי, ואם אסימון רשום נפגע אי פעם, בטל אותו מיד במסוף Firebase.

    צילום מסך של פריט התפריט Manage Debug Tokens

  2. הוסף את אסימון ניפוי הבאגים שיצרת זה עתה למאגר המפתחות המאובטח של מערכת ה-CI שלך (לדוגמה, הסודות המוצפנים של GitHub Actions או המשתנים המוצפנים של Travis CI).

  3. במידת הצורך, הגדר את מערכת ה-CI שלך כדי להפוך את אסימון ניפוי הבאגים שלך לזמין בתוך סביבת ה-CI כמשתנה סביבה. תן שם למשתנה כמו APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל <project>/<app-module>/build.gradle.kts או <project>/<app-module>/build.gradle ), הוסף את התלות עבור בדיקת האפליקציה ספרייה עבור אנדרואיד. אנו ממליצים להשתמש ב- Firebase Android BoM כדי לשלוט בגירסאות של הספרייה.

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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:17.1.2")
    }
    
    מחפש מודול ספרייה ספציפי לקוטלין? החל מאוקטובר 2023 (Firebase BoM 32.5.0) , מפתחי Kotlin ו-Java יכולים להיות תלויים במודול הספרייה הראשי (לפרטים, עיין בשאלות הנפוצות לגבי יוזמה זו ).

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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:17.1.2")
    }
    
    מחפש מודול ספרייה ספציפי לקוטלין? החל מאוקטובר 2023 (Firebase BoM 32.5.0) , מפתחי Kotlin ו-Java יכולים להיות תלויים במודול הספרייה הראשי (לפרטים, עיין בשאלות הנפוצות לגבי יוזמה זו ).

  5. הוסף את הדברים הבאים לתצורה של גרסת בניית ה-CI שלך:

    testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] =
        System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
    
  6. בשיעורי המבחן שלך, השתמש ב- 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 יקבלו את האסימון שהיא שולחת כתקף.