You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:24:02