Firebase App Check Play Integrity调试令牌配置及使用问题求助
解决Firebase App Check Play Integrity调试令牌无效及Debug构建Auth问题
一、区分两种Debug场景:手动运行 vs 自动化测试
你当前的配置混淆了手动运行Debug应用和Instrumented测试的场景,这是核心问题:
debugAppCheckTestHelper.withDebugProvider仅用于Android Instrumented Tests(如Firebase Test Lab或本地UI测试),手动运行Debug构建时无需调用该方法。- 手动运行模拟器/真机Debug版本时,直接使用
DebugAppCheckProviderFactory,通过日志获取调试令牌后添加到Firebase控制台即可。
二、手动运行Debug构建的正确配置步骤
1. 简化Application类代码
移除debugAppCheckTestHelper相关代码,修改后的代码如下:
FirebaseApp.initializeApp(this) Firebase.analytics.setAnalyticsCollectionEnabled(!BuildConfig.DEBUG) Firebase.crashlytics.setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG) Firebase.appCheck.installAppCheckProviderFactory( if (BuildConfig.DEBUG) DebugAppCheckProviderFactory.getInstance() else PlayIntegrityAppCheckProviderFactory.getInstance() )
2. 获取并注册调试令牌
- 运行Debug构建的应用,打开Logcat搜索关键字
DebugAppCheckProvider,会找到类似日志:D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- 复制该令牌,进入Firebase控制台→你的项目→App Check→对应Android应用→点击调试令牌→添加复制的令牌并保存。
3. 验证配置
重启应用,若Logcat出现Successfully fetched App Check token相关日志,说明配置生效。
三、Instrumented测试(CI/CD、Firebase Test Lab)的配置
仅在自动化测试场景下需要用到firebaseAppCheckDebugSecret和debugAppCheckTestHelper:
1. 保留build.gradle配置
确保子模块build.gradle中的配置正确:
defaultConfig { testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = "你的调试令牌" } api 'com.google.firebase:firebase-appcheck-playintegrity:17.0.1' api 'com.google.firebase:firebase-appcheck-debug:17.0.1' api 'com.google.firebase:firebase-appcheck-ktx:17.0.1' api 'com.google.android.play:integrity:1.2.0' api 'com.google.firebase:firebase-appcheck-debug-testing:17.0.1'
注意:这里的令牌必须是已在Firebase控制台添加的有效调试令牌。
2. 在测试类中使用debugAppCheckTestHelper
将需要App Check的测试逻辑包裹在测试类中(而非Application类):
@RunWith(AndroidJUnit4::class) class MyAppCheckTest { private val debugAppCheckTestHelper = DebugAppCheckTestHelper() @Test fun testAppCheckProtectedFeature() { debugAppCheckTestHelper.withDebugProvider { // 编写需要App Check令牌的测试代码,例如调用Firebase Auth电话认证 } } }
四、Debug构建下Firebase Auth电话认证修复
Debug构建下Auth电话认证失效,是因为App Check未生效导致的。按照上述步骤配置好Debug App Check后,Auth的保护规则会允许调试令牌通过,电话认证即可正常工作。
五、常见坑点
- 确保Firebase控制台中App Check的调试模式已开启(在App Check设置页面可找到)。
- 调试令牌为项目级,添加到控制台后所有Debug构建均可使用,无需绑定特定设备或签名。
- 确保Debug和Release分支的App Check Provider Factory逻辑互斥,避免重复安装。
内容的提问来源于stack exchange,提问作者Bitwise DEVS
相关产品推荐
相关产品推荐

