Catch up on everthing we announced at this year's Firebase Summit. Learn more

Verwenden Sie App Check mit dem Debug-Anbieter auf Android

Wenn Sie Ihre App nach der Registrierung für App Check in einer Umgebung ausführen möchten, die App Check normalerweise nicht als gültig einstufen würde, wie z Erstellen Sie einen Debugbuild Ihrer App, der den App Check-Debuganbieter anstelle eines echten Attestierungsanbieters verwendet.

Verwenden Sie den Debug-Anbieter in einem Emulator

Gehen Sie wie folgt vor, um den Debug-Anbieter zu verwenden, während Sie Ihre App interaktiv in einem Emulator ausführen (z. B. während der Entwicklung):

  1. In Ihrem Modul (app-Ebene) Gradle Datei ( in der Regel app/build.gradle ), erklärt die Abhängigkeit für die App Android - Bibliothek prüfen:

    Java

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta04'
    }
    

    Kotlin+KTX

    dependencies {
        implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta04'
    }
    
  2. Konfigurieren Sie in Ihrem Debug-Build App Check so, dass die Debug-Provider-Factory verwendet wird:

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());

    Kotlin+KTX

    FirebaseApp.initializeApp(/*context=*/this)
    val firebaseAppCheck = FirebaseAppCheck.getInstance()
    firebaseAppCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance()
    )
  3. Starten Sie die App und rufen Sie einen Firebase-Back-End-Dienst auf. Ein lokales Debug-Token wird protokolliert, wenn das SDK versucht, eine Anfrage an das Back-End zu senden. Zum Beispiel:

    D DebugAppCheckProvider: Enter this debug secret into the allow list in
    the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
  4. In den Projekteinstellungen> App überprüfen Abschnitt der Konsole Firebase, wählen Sie aus der App Laufmenü verwalten Debug - Token. Registrieren Sie dann das Debug-Token, das Sie im vorherigen Schritt angemeldet haben.

    Screenshot des Menüelements Debug-Token verwalten

Nachdem Sie das Token registriert haben, wird es von den Firebase-Back-End-Diensten als gültig akzeptiert.

Da dieses Token den Zugriff auf Ihre Firebase-Ressourcen ohne gültiges Gerät ermöglicht, ist es wichtig, dass Sie es privat halten. Übertragen Sie es nicht in ein öffentliches Repository, und wenn ein registriertes Token jemals kompromittiert wird, widerrufen Sie es sofort in der Firebase-Konsole.

Verwenden Sie den Debug-Provider für Unit-Tests in einer CI-Umgebung

Gehen Sie wie folgt vor, um den Debug-Provider für Komponententests in einer Continuous Integration (CI)-Umgebung zu verwenden:

  1. In den Projekteinstellungen> App überprüfen Abschnitt der Konsole Firebase, wählen Sie aus der App Laufmenü verwalten Debug - Token. Erstellen Sie dann ein neues Debug-Token. Sie benötigen das Token im nächsten Schritt.

    Da dieses Token den Zugriff auf Ihre Firebase-Ressourcen ohne gültiges Gerät ermöglicht, ist es wichtig, dass Sie es privat halten. Übertragen Sie es nicht in ein öffentliches Repository, und wenn ein registriertes Token jemals kompromittiert wird, widerrufen Sie es sofort in der Firebase-Konsole.

    Screenshot des Menüelements Debug-Token verwalten

  2. Fügen Sie den Debug - Token , das Sie gerade erstellt haben, um Ihre CI - System des sicheren Schlüsselspeicher (zum Beispiel GitHub Aktionen verschlüsselten Geheimnisse oder Travis CI verschlüsselten Variablen ).

  3. Konfigurieren Sie bei Bedarf Ihr CI-System, um Ihr Debug-Token als Umgebungsvariable innerhalb der CI-Umgebung verfügbar zu machen. Benennen Sie die Variable so etwas wie APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. In Ihrem Modul (app-Ebene) Gradle Datei ( in der Regel app/build.gradle ):

    1. Deklarieren Sie die Testabhängigkeit für die Android-Debugbibliothek von App Check:

      Java

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0-beta04'
      }
      

      Kotlin+KTX

      dependencies {
          androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0-beta04'
      }
      
    2. Fügen Sie der Konfiguration Ihrer CI-Build-Variante Folgendes hinzu:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. In Ihrer Testklasse, verwenden Sie die DebugAppCheckTestHelper beliebigen Code zu wickeln , die eine App prüfen Token benötigt:

    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.
                    });
        }
    }
    

    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.
            }
        }
    }
    

Wenn Ihre App in einer CI-Umgebung ausgeführt wird, akzeptieren die Firebase-Back-End-Dienste das gesendete Token als gültig.