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

如何在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项目集成依赖

  1. 安装所需库
    npm install @react-native-firebase/app-check @react-native-firebase/auth
    # 或用yarn
    yarn add @react-native-firebase/app-check @react-native-firebase/auth
    
  2. 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并实现手机号验证

  1. 初始化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,
      });
    }
    
  2. 移除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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:05:23