如何在React Native中用react-native-firebase实现AppCheck?
React Native中通过AppCheck+Play Integrity移除Firebase手机号验证reCaptcha方案
一、Firebase控制台前置配置
- 进入Firebase项目控制台,启用App Check模块
- 选择目标Android应用,添加Play Integrity作为验证提供者
- 填写应用包名及对应SHA-256指纹(可从Google Play Console或本地签名文件获取)
- 前往Google Play Console,启用Play Integrity API(API库中搜索启用)
- 测试阶段需将应用上传至Google Play内部测试轨道,获取测试签名指纹
二、React Native项目集成依赖
- 安装所需库
npm install @react-native-firebase/app-check @react-native-firebase/auth # 或用yarn yarn add @react-native-firebase/app-check @react-native-firebase/auth - Android端基础配置
- 确保
android/app/google-services.json已正确放置在对应目录 - 在
AndroidManifest.xml补充基础权限(若无):<uses-permission android:name="android.permission.INTERNET" /> - debug模式测试时,在Firebase控制台生成debug token,添加到
android/app/src/main/res/values/strings.xml:<string name="firebase_app_check_debug_token" translatable="false">你的debug_token</string>
- 确保
三、JS端初始化AppCheck并实现手机号验证
- 初始化AppCheck
在项目入口文件(如App.js)中添加初始化代码:import { AppCheck, PlayIntegrityProvider } from '@react-native-firebase/app-check'; import auth from '@react-native-firebase/auth'; import { Platform } from 'react-native'; // 仅Android端使用PlayIntegrityProvider if (Platform.OS === 'android') { AppCheck().initializeAppCheck({ provider: new PlayIntegrityProvider(), isTokenAutoRefreshEnabled: true, }); } - 移除reCaptcha的手机号验证逻辑
无需再创建reCaptchaVerifier,直接调用验证接口:let confirmationRef = null; // 请求发送验证码 const requestVerificationCode = async (phoneNumber) => { try { confirmationRef = await auth().signInWithPhoneNumber(phoneNumber); } catch (err) { console.error('验证码请求失败:', err.message); } }; // 验证输入的验证码 const verifyCode = async (inputCode) => { try { await confirmationRef.confirm(inputCode); // 验证成功,用户已完成登录 } catch (err) { console.error('验证码验证失败:', err.message); } };
四、常见问题排查
- AppCheck验证失败:检查SHA-256指纹是否同时配置在Firebase和Google Play Console,应用是否已上传至Play测试轨道,debug token是否正确
- Play Integrity报错:确认Google Play Console中已启用Play Integrity API,且项目API密钥拥有对应权限
- iOS适配:iOS端需使用
DeviceCheckProvider,并在Apple开发者后台配置Device Check功能
内容的提问来源于stack exchange,提问作者Vikas Chahar
相关产品推荐
相关产品推荐

