Dopo che App Check è stato applicato a un servizio di backend, le funzionalità dell'app che dipendono da quel servizio di backend non verranno eseguite in un emulatore o in un ambiente di integrazione continua (CI) perché questi ambienti non sono considerati dispositivi validi. Per eseguire l'app in questi ambienti durante lo sviluppo e i test, devi creare una build di debug dell'app che utilizzi il App Check provider di debug anziché un provider di attestazione di produzione.
Utilizzare il provider di debug in un emulatore
Ecco come utilizzare il provider di debug durante l'esecuzione interattiva dell'app in un emulatore (ad esempio, durante lo sviluppo locale):
Nel file Gradle del modulo (a livello di app) (in genere
<project>/<app-module>/build.gradle.ktso<project>/<app-module>/build.gradle), aggiungi la dipendenza per la libreria App Check per Android. Ti consigliamo di utilizzare la Firebase Android BoM per controllare il controllo delle versioni della libreria.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.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") }
Con la Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungere dipendenze della libreria Firebase senza utilizzare la BoM
Se scegli di non utilizzare la Firebase BoM, devi specificare la versione di ogni libreria Firebase nella riga di dipendenza.
Tieni presente che, se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la BoM per gestire le versioni delle librerie, in modo da garantire che tutte le versioni siano compatibili.
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:19.3.0") }
Nella build di debug, configura App Check in modo che utilizzi la factory del provider di debug:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Ottieni il token di debug:
Esegui l'app nell'emulatore o sul dispositivo di test.
Cerca il token di debug App Check nei log. Ad esempio:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678Copia il token (ad esempio,
123a4567-b89c-12d3-e456-789012345678).
Registra il token di debug con App Check:
Nella console Firebase, vai alla scheda Sicurezza > App Check > App.
Trova l'app, fai clic sul menu overflow con tre puntini () e poi seleziona Gestisci token di debug.
Segui le istruzioni sullo schermo per registrare il token di debug.

Dopo aver registrato il token con App Check, i servizi di backend lo accetteranno come valido.
Questo token consente l'accesso ai servizi di backend senza un dispositivo valido, quindi è fondamentale mantenerlo privato. Non eseguirne il commit in un repository pubblico o spedirlo nelle build di produzione dell'app. Se un token registrato viene compromesso, eliminalo immediatamente utilizzando Gestisci token di debug nella Firebase console.
Utilizzare il provider di debug per i test delle unità in un ambiente CI
Ecco come utilizzare il provider di debug per i test delle unità in un ambiente di integrazione continua (CI):
Nella console Firebase, crea un token di debug:
Nella console Firebase, vai alla scheda Sicurezza > App Check > App.
Trova l'app, fai clic sul menu overflow con tre puntini () e poi seleziona Gestisci token di debug.
Segui le istruzioni sullo schermo per creare un nuovo token di debug.
Questo token consente l'accesso ai servizi di backend senza un dispositivo valido, quindi è fondamentale mantenerlo privato. Non eseguirne il commit in un repository pubblico o spedirlo nelle build di produzione dell'app. Se un token registrato viene compromesso, eliminalo immediatamente utilizzando Gestisci token di debug nella Firebase console.

Aggiungi il token di debug appena creato all'archivio chiavi sicuro del sistema CI (ad esempio, i secret criptati di GitHub Actions o le variabili criptate di Travis CI).
Se necessario, configura il sistema CI in modo che il token di debug sia disponibile nell'ambiente CI come variabile di ambiente. Assegna alla variabile un nome simile a
APP_CHECK_DEBUG_TOKEN_FROM_CI.Nel file Gradle del modulo (a livello di app) (in genere
<project>/<app-module>/build.gradle.ktso<project>/<app-module>/build.gradle), aggiungi la dipendenza per la libreria App Check per Android. Ti consigliamo di utilizzare la Firebase Android BoM per controllare il controllo delle versioni della libreria.Kotlin
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.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") }
Con la Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungere dipendenze della libreria Firebase senza utilizzare la BoM
Se scegli di non utilizzare la Firebase BoM, devi specificare la versione di ogni libreria Firebase nella riga di dipendenza.
Tieni presente che, se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la BoM per gestire le versioni delle librerie, in modo da garantire che tutte le versioni siano compatibili.
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:19.3.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.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") }
Con la Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase Android.
(Alternativa) Aggiungere dipendenze della libreria Firebase senza utilizzare la BoM
Se scegli di non utilizzare la Firebase BoM, devi specificare la versione di ogni libreria Firebase nella riga di dipendenza.
Tieni presente che, se utilizzi più librerie Firebase nella tua app, ti consigliamo vivamente di utilizzare la BoM per gestire le versioni delle librerie, in modo da garantire che tutte le versioni siano compatibili.
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:19.3.0") }
Aggiungi quanto segue alla configurazione della variante di compilazione CI:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""Nelle classi di test, utilizza
DebugAppCheckTestHelperper racchiudere qualsiasi codice che richieda un App Check token:Kotlin
@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. }); } }
Quando l'app viene eseguita in un ambiente CI, i servizi di backend accetteranno il token inviato come valido.