Se, dopo aver registrato la tua app per App Check, vuoi eseguirla in un ambiente che App Check normalmente non classificherebbe come valido, come un emulatore durante lo sviluppo o da un ambiente di integrazione continua (CI), puoi creare una build di debug della tua app che utilizzi il fornitore di debug App Check anziché un fornitore di attestazione reale.
Utilizzare il provider di debug in un emulatore
Per utilizzare il provider di debug mentre esegui l'app in un emulatore in modo interattivo (ad esempio durante lo sviluppo), procedi nel seguente modo:
Nel file Gradle del modulo (a livello di app) (di solito
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
), aggiungi la dipendenza per la libreria App Check per Android. Ti consigliamo di utilizzare Firebase Android BoM per controllare il controllo delle versioni delle librerie.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.5.1")) // 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 Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase per Android.
(Alternativa) Aggiungi dipendenze della libreria Firebase senza utilizzare BoM
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella riga di dipendenza.
Tieni presente che se nella tua app utilizzi più librerie Firebase, ti consigliamo vivamente di utilizzare BoM per gestire le versioni delle librerie, in modo da garantire la compatibilità di tutte le versioni.
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:18.0.0") }
Nella build di debug, configura App Check in modo da utilizzare i dati di fabbrica del provider di debug:
Kotlin+KTX
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Avvia l'app e attiva una chiamata a un servizio di backend Firebase. Viene registrato un token di debug locale quando l'SDK tenta di inviare una richiesta al backend. Ad esempio:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
Nella sezione App Check della console Firebase, scegli Gestisci token di debug dal menu overflow della tua app. Quindi, registra il token di debug che hai eseguito nel passaggio precedente.
Dopo aver registrato il token, i servizi di backend di Firebase lo accetteranno come valido.
Poiché questo token consente di accedere alle risorse Firebase senza un dispositivo valido, è fondamentale mantenerlo privato. Non impegnarlo in un repository pubblico e, se un token registrato viene compromesso, revocalo immediatamente nella console Firebase.
Utilizzare il provider di debug per i test di unità in un ambiente CI
Per utilizzare il provider di debug per il test delle unità in un ambiente di integrazione continua (CI), segui questi passaggi:
Nella sezione App Check della console Firebase, scegli Gestisci token di debug dal menu overflow della tua app. Poi, crea un nuovo token di debug. Ti servirà nel passaggio successivo.
Poiché questo token consente di accedere alle risorse Firebase senza un dispositivo valido, è fondamentale mantenerlo privato. Non eseguirne il commit in un repository pubblico e, se un token registrato viene compromesso, revocalo immediatamente nella console Firebase.
Aggiungi il token di debug che hai appena creato all'archivio chiavi sicuro del tuo sistema CI (ad esempio, i secret criptati delle Azioni di GitHub o le variabili criptate di Travis CI).
Se necessario, configura il sistema CI in modo da rendere disponibile il token di debug all'interno dell'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) (di solito
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
), aggiungi la dipendenza per la libreria App Check per Android. Ti consigliamo di utilizzare Firebase Android BoM per controllare il controllo delle versioni delle librerie.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.5.1")) // 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") }
Utilizzando Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase per Android.
(Alternativa) Aggiungi dipendenze della libreria Firebase senza utilizzare BoM
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella riga di dipendenza.
Tieni presente che se nella tua app utilizzi più librerie Firebase, ti consigliamo vivamente di utilizzare BoM per gestire le versioni della libreria, in modo 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:18.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.5.1")) // 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") }
Utilizzando Firebase Android BoM, la tua app utilizzerà sempre versioni compatibili delle librerie Firebase per Android.
(Alternativa) Aggiungi le dipendenze della libreria Firebase senza utilizzare il file BoM
Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella riga di dipendenza.
Tieni presente che se nella tua app utilizzi più librerie Firebase, ti consigliamo vivamente di utilizzare BoM per gestire le versioni delle librerie, in modo da garantire la compatibilità di tutte le versioni.
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:18.0.0") }
Aggiungi quanto segue alla configurazione della variante di build CI:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
Nelle classi di test, utilizza
DebugAppCheckTestHelper
per eseguire il wrapping di qualsiasi codice che richiede un token 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. }); } }
Quando la tua app viene eseguita in un ambiente CI, i servizi di backend Firebase accettano il token inviato come valido.