Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

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

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

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

  1. בקובץ 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'
    }
    
  2. בבניית ניפוי הבאגים, הגדר את 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());
  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 (בדרך כלל app/build.gradle ):

    1. הכריז על תלות הבדיקה של ספריית ניפוי באגים של 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'
      }
      
    2. הוסף את הדברים הבאים לתצורה של גרסת בניית ה-CI שלך:

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