配置Firebase App Check后无法连接数据库,提示无效令牌
问题描述
完成以下操作后,应用完全无法连接Firebase,报错信息为:
Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Invalid appcheck token
模拟器与真机均出现相同错误,未添加以下代码的其他应用可正常连接。
操作步骤
- 按照Firebase App Check安卓调试指南操作,LogCat输出:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
- 进入
Firebase Console>App Check>Apps,点击安卓应用旁的三个点>管理调试令牌>添加调试令牌,将123a4567-b89c-12d3-e456-789012345678粘贴为名称,点击生成令牌生成值。
运行应用后,LogCat日志如下:
Enter this debug secret into the allow list in the Firebase Console for your project: XXXXXXXX-YYYY-ZZZZ-AAAA-XXXXXXXXXXXX Detected invalid AppCheck token. Reconnecting (2 attempts remaining) Detected invalid AppCheck token. Reconnecting (1 attempts remaining) Detected invalid AppCheck token. Reconnecting (0 attempts remaining) Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Invalid appcheck token Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: No AppCheckProvider installed.
重复上述操作,将名称改为XXXXXXXX-YYYY-ZZZZ-AAAA-XXXXXXXXXXXX,重新生成令牌值:

Gradle配置:
implementation(platform('com.google.firebase:firebase-bom:32.3.1')) implementation("com.google.firebase:firebase-appcheck-ktx") implementation("com.google.firebase:firebase-appcheck-debug") implementation("com.google.firebase:firebase-appcheck-playintegrity")
- MainActivity代码:
override fun onCreate(savedInstanceState: Bundle?) { installSplashScreen() super.onCreate(savedInstanceState) if (BuildConfig.DEBUG) { Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), ) } else { Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), ) } }
进入Google Play Console的目标应用 >
设置>应用签名,复制SHA-256证书指纹:
进入Firebase Console >
App Check>Apps,点击安卓应用 >Play Integrity,粘贴来自Play Store的SHA-256证书指纹:
注:另外两个SHA-256证书为之前添加,与RevenueCat相关。进入Google Console >
凭据>Android密钥(由Firebase自动创建),勾选安卓应用和不限制密钥,点击添加,添加应用包名与SHA-1指纹。
获取SHA-1指纹的终端命令:
$ keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
密码输入android。
内容的提问来源于stack exchange,提问作者Lance Samaria
相关产品推荐
相关产品推荐

