Si, después de haber registrado su aplicación para App Check, desea ejecutar su aplicación en un entorno que App Check normalmente no clasificaría como válido, como un emulador durante el desarrollo o desde un entorno de integración continua (CI), puede cree una compilación de depuración de su aplicación que use el proveedor de depuración de App Check en lugar de un proveedor de atestación real.
Usar el proveedor de depuración en un emulador
Para usar el proveedor de depuración mientras ejecuta su aplicación en un emulador de forma interactiva (durante el desarrollo, por ejemplo), haga lo siguiente:
En el archivo Gradle de tu módulo (nivel de aplicación) (generalmente
app/build.gradle
), declara la dependencia para la biblioteca de Android App Check:Java
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0' }
Kotlin+KTX
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0' }
En su compilación de depuración, configure App Check para usar la fábrica de proveedores de depuración:
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() )
Inicie la aplicación y active una llamada a un servicio backend de Firebase. Se registrará un token de depuración local cuando el SDK intente enviar una solicitud al backend. Por ejemplo:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
En la sección Verificación de la aplicación de Firebase console, elija Administrar tokens de depuración en el menú adicional de su aplicación. Luego, registre el token de depuración que inició sesión en el paso anterior.
Después de registrar el token, los servicios backend de Firebase lo aceptarán como válido.
Debido a que este token permite el acceso a sus recursos de Firebase sin un dispositivo válido, es crucial que lo mantenga en privado. No lo confirme en un repositorio público y, si alguna vez se compromete un token registrado, revélelo de inmediato en la consola de Firebase.
Utilice el proveedor de depuración para pruebas unitarias en un entorno de CI
Para usar el proveedor de depuración para pruebas unitarias en un entorno de integración continua (CI), haga lo siguiente:
En la sección Verificación de la aplicación de Firebase console, elija Administrar tokens de depuración en el menú adicional de su aplicación. Luego, cree un nuevo token de depuración. Necesitará el token en el siguiente paso.
Debido a que este token permite el acceso a sus recursos de Firebase sin un dispositivo válido, es fundamental que lo mantenga en privado. No lo confirme en un repositorio público y, si alguna vez se compromete un token registrado, revélelo de inmediato en la consola de Firebase.
Agregue el token de depuración que acaba de crear al almacén de claves seguras de su sistema CI (por ejemplo, los secretos cifrados de GitHub Actions o las variables cifradas de Travis CI).
Si es necesario, configure su sistema de CI para que su token de depuración esté disponible dentro del entorno de CI como una variable de entorno. Nombra la variable como
APP_CHECK_DEBUG_TOKEN_FROM_CI
.En el archivo Gradle de su módulo (nivel de aplicación) (generalmente
app/build.gradle
):Declare la dependencia de prueba para la biblioteca de depuración de App Check Android:
Java
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0' }
Kotlin+KTX
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.0.0' }
Agregue lo siguiente a la configuración de su variante de compilación de CI:
testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
En sus clases de prueba, use
DebugAppCheckTestHelper
para envolver cualquier código que necesite un token de App Check: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. } } }
Cuando su aplicación se ejecuta en un entorno de CI, los servicios de backend de Firebase aceptarán el token que envía como válido.