Flutter项目接入Firebase App Check功能无法正常使用问题求助
问题排查&解决步骤
1. 调试令牌使用配置
你生成的调试令牌有两种使用方式,二选一即可:
- 系统配置方式:打开安卓设备系统设置,搜索「应用验证」进入对应设置页,选择「输入调试代码」,将你生成的
tests对应的64位调试令牌填入保存 - 代码配置方式(仅调试阶段可用):直接在Dart层指定调试校验提供方,运行App后控制台会打印调试令牌,将该令牌添加到Firebase后台App Check的调试令牌列表即可
2. 修正初始化逻辑顺序
你当前MainActivity.kt中的初始化顺序错误,必须先调用父类onCreate再执行Firebase相关初始化,修正后代码如下:
// 包声明 import io.flutter.embedding.android.FlutterActivity import android.os.Bundle import com.google.firebase.FirebaseApp import com.google.firebase.appcheck.FirebaseAppCheck import com.google.firebase.appcheck.safetynet.SafetyNetAppCheckProviderFactory class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) FirebaseApp.initializeApp(this) val firebaseAppCheck = FirebaseAppCheck.getInstance() firebaseAppCheck.installAppCheckProviderFactory(SafetyNetAppCheckProviderFactory.getInstance()) } }
3. 补充App Check激活参数
你当前调用activate方法时未指定安卓端校验提供方,需要按使用场景补充参数:
- 调试阶段配置:
await FirebaseAppCheck.instance.activate( androidProvider: AndroidProvider.debug, );
- 生产阶段SafetyNet配置:
await FirebaseAppCheck.instance.activate( androidProvider: AndroidProvider.safetyNet, );
4. 依赖兼容校验
- 你当前使用的
com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta03属于较早的测试版本,建议升级到和项目其他Firebase依赖版本匹配的稳定版 - 确认项目根目录的
build.gradle中已经配置了Google Maven仓库:
allprojects { repositories { google() mavenCentral() } }
5. 后台配置校验
- 确认Firebase后台SafetyNet配置中填写的SHA-256指纹,和你当前打包用的签名指纹完全一致,调试阶段要注意区分debug签名和release签名的不同指纹
- Firebase后台开启App Check强制校验后,最长需要等待15分钟配置才会全局生效,刚开启配置可以稍等片刻再测试
- 确认Storage的自定义安全规则没有额外拦截合法请求
内容的提问来源于stack exchange,提问作者ThomasG2201
相关产品推荐
相关产品推荐

