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

启用Firebase Play Integrity后,React Native中配置App Check解决认证错误

解决方案:React Native(Android/Windows)Firebase Phone Auth + Play Integrity App Check配置

1. 确保安装App Check专用包

你提到已安装核心包,但@react-native-firebase/app不包含App Check功能,需单独安装:

npm install @react-native-firebase/app-check
# 或使用yarn
yarn add @react-native-firebase/app-check

2. Android端Play Integrity基础配置

在Firebase控制台完成Play Integrity启用后,需补充以下步骤:

  • 确认你的Android应用签名证书的SHA-256指纹已添加到Firebase项目的「项目设置 > 你的Android应用 > 应用签名」中(调试和发布签名都要加,对应你当前打包用的签名)。
  • 确保android/app/build.gradle中存在Play Integrity依赖(React Native Firebase包会自动引入,可检查确认):
    dependencies {
      implementation "com.google.firebase:firebase-appcheck-playintegrity:16.0.0"
    }
    

3. React Native代码中初始化App Check

在应用启动入口(如App.js或index.js)添加App Check初始化代码,指定使用Play Integrity Provider:

import appCheck from '@react-native-firebase/app-check';
import { useEffect } from 'react';

// 在App组件加载时执行初始化
useEffect(() => {
  appCheck().initializeAppCheck({
    provider: appCheck.PlayIntegrityProvider,
    // 自动刷新token,建议开启
    isTokenAutoRefreshEnabled: true,
    // 调试模式下可添加调试令牌(从Firebase控制台App Check获取)
    // debugToken: "YOUR_DEBUG_TOKEN",
  });
}, []);
  • 调试模式:需在Firebase控制台「App Check > 你的应用 > 调试许可」中添加当前设备的SHA-256指纹,生成调试令牌并填入上述代码,否则调试时Play Integrity验证会失败。

4. 错误排查关键点

  • 错误提示提到SafetyNet/reCAPTCHA是因为Firebase Auth Phone验证的 fallback逻辑,但你已启用Play Integrity,核心问题是App Check未正确初始化,导致Auth请求未携带有效验证令牌。
  • 查看Android Logcat日志,搜索「App Check」「Play Integrity」关键词,定位具体失败原因(如签名不匹配、令牌获取失败等)。
  • 确保当前打包的应用使用的签名与Firebase控制台中配置的签名一致(调试包用调试签名,发布包用发布签名)。
  • Windows端注意:Firebase App Check对Windows平台支持有限,若需适配可考虑使用reCAPTCHA Enterprise,但需单独配置。

5. 验证配置生效

完成上述步骤后,重新打包应用,使用真实手机号测试:

  • 若仍报错,优先检查Logcat中的App Check相关错误信息;
  • 可临时关闭App Check(Firebase控制台)测试,若能正常验证则确认是App Check配置问题。

内容的提问来源于stack exchange,提问作者Ajay Kumar Yadav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:57:31