Flutter Firebase AppCheck安卓发布模式证书配置及代码实现疑问
Flutter Firebase AppCheck 安卓发布模式(官方签名证书)配置指南
一、Firebase后台预配置
- 进入Firebase控制台的AppCheck页面,找到你的安卓应用,选择Play Integrity作为验证提供商(SafetyNet已经废弃,不推荐使用)
- 填入你的应用官方签名证书的SHA-256指纹,注意要和你打包发布用的签名证书指纹完全一致;如果使用Google Play托管签名,需要去Google Play控制台的「应用完整性」页面复制Google托管的签名SHA-256值填入
- 保存配置后等待15分钟左右生效
二、安卓端原生配置
- 打开项目
android/app/build.gradle文件,确认发布构建设置已经正确绑定了你的官方签名证书,参考配置如下:
android { signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release // 无需额外手动引入AppCheck依赖,flutterfire官方包已经自动集成 } } }
- 确认你的安卓应用
minSdkVersion>= 21,这是Play Integrity验证的最低版本要求
三、Flutter端代码配置
你提供的代码是Web端专用的激活逻辑,安卓/iOS端激活不需要传入Web端的reCAPTCHA参数,直接调用激活方法即可,参考代码如下:
import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_app_check/firebase_app_check.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); // 按需按平台激活AppCheck if (kIsWeb) { // Web端才需要传入reCAPTCHA密钥 await FirebaseAppCheck.instance.activate(webRecaptchaSiteKey: '你的recaptcha-v3-site-key'); } else { // 安卓/ iOS端直接激活即可,发布模式下会自动走对应平台的验证逻辑 await FirebaseAppCheck.instance.activate(); } runApp(const MyApp()); }
注意:开发阶段如果需要调试可以指定安卓调试提供商
androidProvider: AndroidAppCheckProvider.debug,打正式发布包时一定要移除该调试配置。
四、发布验证注意事项
- 首次配置后不要立刻打正式包测试,等待Firebase后台配置生效后再验证
- 如果你开启了AppCheck强制验证,要确保所有正式渠道的安装包都使用了对应配置的签名证书,否则请求会被Firebase直接拦截
- AppCheck配置完成后,需要在Firebase云函数、实时数据库、Cloud Storage等对应服务的安全规则中开启AppCheck校验,才会真正生效拦截非法请求
内容的提问来源于stack exchange,提问作者Noobdeveloper
相关产品推荐
相关产品推荐

