Si, después de registrar la app en la Verificación de aplicaciones, quieres ejecutarla en un entorno que la Verificación de aplicaciones no suele clasificar como válido, como un emulador durante el desarrollo o desde un entorno de integración continua (CI), puedes crear una compilación de depuración de la app que use el proveedor de depuración de la Verificación de aplicaciones, en lugar de un proveedor de certificación real.
Usa el proveedor de depuración en un emulador
Para usar el proveedor de depuración mientras ejecutas la app en un emulador de manera interactiva (por ejemplo, durante el desarrollo), sigue estos pasos:
En el archivo de Gradle (generalmente
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
) del módulo (a nivel de app), agrega la dependencia de la biblioteca de Android para la Verificación de aplicaciones: Te recomendamos usar la BoM de Firebase para Android para controlar las versiones de las bibliotecas.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.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")
implementation("com.google.firebase:firebase-appcheck-ktx") }Si usas la BoM de Firebase para Android, tu app siempre utilizará versiones compatibles de las bibliotecas de Firebase para Android.
(Alternativa) Agrega dependencias de la biblioteca de Firebase sin usar la BoM
Si eliges no usar la BoM de Firebase, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que utilices la BoM para administrar las versiones de las bibliotecas para garantizar que todas las versiones sean compatibles.
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:17.0.1")
implementation("com.google.firebase:firebase-appcheck-ktx:17.0.1") }Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.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") }
Si usas la BoM de Firebase para Android, tu app siempre utilizará versiones compatibles de las bibliotecas de Firebase para Android.
(Alternativa) Agrega dependencias de la biblioteca de Firebase sin usar la BoM
Si eliges no usar la BoM de Firebase, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que utilices la BoM para administrar las versiones de las bibliotecas para garantizar que todas las versiones sean compatibles.
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:17.0.1") }
En la compilación de depuración, configura la Verificación de aplicaciones para que use la fábrica de proveedores de depuración:
Kotlin+KTX
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Inicia la app y activa una llamada a un servicio de 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 aplicaciones de Firebase console, selecciona Administrar tokens de depuración (Manage debug tokens) en el menú ampliado de la app. Luego, registra el token de depuración que ingresaste en el paso anterior.
Después de registrar el token, los servicios de backend de Firebase lo aceptarán como válido.
Debido a que este token permite el acceso a tus recursos de Firebase sin un dispositivo válido, es fundamental que sea privado. No lo confirmes en un repositorio público y, si un token registrado se ve comprometido, revócalo de inmediato en Firebase console.
Usa el proveedor de depuración para pruebas de unidades en un entorno de CI
Si deseas usar el proveedor de depuración para pruebas de unidades en un entorno de integración continua (CI), sigue estos pasos:
En la sección Verificación de aplicaciones de Firebase console, selecciona Administrar tokens de depuración (Manage debug tokens) en el menú ampliado de la app. Luego, crea un token de depuración nuevo. Lo necesitarás en el siguiente paso.
Debido a que este token permite el acceso a tus recursos de Firebase sin un dispositivo válido, es fundamental que sea privado. No lo confirmes en un repositorio público y, si un token registrado se ve comprometido, revócalo de inmediato en Firebase console.
Agrega el token de depuración que acabas de crear al almacén de claves seguro del sistema de CI (por ejemplo, los secretos encriptados de GitHub Actions o las variables encriptadas de Travis CI).
Si es necesario, configura el sistema de CI a fin de que el token de depuración esté disponible dentro del entorno de CI como una variable de entorno. Asigna un nombre a la variable, como
APP_CHECK_DEBUG_TOKEN_FROM_CI
.En el archivo de Gradle (generalmente
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
) del módulo (a nivel de app), agrega la dependencia de la biblioteca de Android para la Verificación de aplicaciones: Te recomendamos usar la BoM de Firebase para Android para controlar las versiones de las bibliotecas.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing") }
Si usas la BoM de Firebase para Android, tu app siempre utilizará versiones compatibles de las bibliotecas de Firebase para Android.
(Alternativa) Agrega dependencias de la biblioteca de Firebase sin usar la BoM
Si eliges no usar la BoM de Firebase, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que utilices la BoM para administrar las versiones de las bibliotecas para garantizar que todas las versiones sean compatibles.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing") }
Si usas la BoM de Firebase para Android, tu app siempre utilizará versiones compatibles de las bibliotecas de Firebase para Android.
(Alternativa) Agrega dependencias de la biblioteca de Firebase sin usar la BoM
Si eliges no usar la BoM de Firebase, debes especificar cada versión de la biblioteca de Firebase en su línea de dependencia.
Ten en cuenta que, si usas múltiples bibliotecas de Firebase en tu app, es muy recomendable que utilices la BoM para administrar las versiones de las bibliotecas para garantizar que todas las versiones sean compatibles.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1") }
Agrega lo siguiente a la configuración de la variante de compilación de CI:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
En las clases de prueba, usa
DebugAppCheckTestHelper
para unir cualquier código que necesite un token de la Verificación de aplicaciones: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. }); } }
Cuando la app se ejecute en un entorno de CI, los servicios de backend de Firebase aceptarán el token que envía como válido.