如何在Android端React Native项目中安装配置Firebase AppCheck?
React Native Android端Firebase AppCheck配置教程
你当前使用的@react-native-firebase v12.6.0版本未内置AppCheck封装模块,可选择以下两种方案完成配置:
方案一:升级rnfirebase版本后接入(推荐操作)
该方案操作简单,上层JS可直接调用AppCheck相关能力
- 升级兼容版本依赖
yarn add @react-native-firebase/app@14.9.4 @react-native-firebase/database@14.9.4 @react-native-firebase/analytics@14.9.4 @react-native-firebase/app-check@14.9.4
注意所有rnfirebase相关模块必须保持版本一致,该版本适配你当前使用的React Native 0.63.4
- 添加Android端SafetyNet依赖
打开android/app/build.gradle文件,在dependencies代码块中新增声明:
implementation "com.google.firebase:firebase-appcheck-safetynet:16.1.2"
- JS层初始化AppCheck
修改你的index.js文件,调整为以下内容:
/** * @format */ import { AppRegistry } from 'react-native'; import App from './App'; import { name as appName } from './app.json'; import firebase from '@react-native-firebase/app' import '@react-native-firebase/app-check' // 初始化AppCheck if (__DEV__) { // 开发环境填入Firebase控制台AppCheck页面生成的调试令牌 firebase.appCheck().activate( '你从控制台获取的调试令牌', true // 自动刷新令牌 ); } else { // 生产环境默认加载SafetyNet校验 firebase.appCheck().activate( undefined, true ); } AppRegistry.registerComponent(appName, () => App);
- 校验配置
启动应用后调用实时数据库接口,查看Firebase控制台AppCheck的请求统计页面,确认Android端请求已通过校验后即可开启AppCheck强制模式。
方案二:不升级rnfirebase版本,原生层接入
如果不想改动现有依赖版本,可直接在Android原生层完成AppCheck初始化,上层JS代码无需修改:
- 添加Android端依赖
打开android/app/build.gradle文件,在dependencies代码块中新增声明:
implementation "com.google.firebase:firebase-appcheck-safetynet:16.1.2" implementation "com.google.firebase:firebase-appcheck-debug:16.1.2"
- 原生层初始化AppCheck
打开android/app/src/main/java/你的应用包名/MainApplication.java文件,修改onCreate方法:
import com.google.firebase.FirebaseApp; import com.google.firebase.appcheck.FirebaseAppCheck; import com.google.firebase.appcheck.safetynet.SafetyNetAppCheckProviderFactory; import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory; @Override public void onCreate() { super.onCreate(); // ...原有其他初始化代码保持不变 FirebaseApp.initializeApp(this); FirebaseAppCheck appCheck = FirebaseAppCheck.getInstance(); if (BuildConfig.DEBUG) { // 开发环境用调试模式 appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance()); } else { // 生产环境用SafetyNet校验 appCheck.installAppCheckProviderFactory( SafetyNetAppCheckProviderFactory.getInstance()); } }
常见异常排查
- SafetyNet校验失败优先检查Firebase控制台Android应用配置中,是否正确添加了测试环境和生产环境签名对应的SHA-256指纹
- 开发阶段不要开启AppCheck强制模式,避免调试请求被拦截
- 所有Firebase相关SDK版本需保持兼容,避免出现类加载异常
内容的提问来源于stack exchange,提问作者ShaheerDev
相关产品推荐
相关产品推荐

