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

React Native安卓发布构建中Firebase App Check功能异常求助

React Native Firebase App Check 发布构建失效问题解决方案

核心代码问题:初始化顺序错误

你当前的代码在未完成App Check初始化的情况下就调用了getToken(),这会导致发布构建中无法正常获取有效令牌。正确的流程应该是先配置Provider、完成初始化,再尝试获取令牌。

修正后的代码

const firebaseAppCheckFunction = async () => {
  const appCheck = await firebase.appCheck();
  const rnfbProvider = appCheck.newReactNativeFirebaseAppCheckProvider();

  // 先配置Provider
  rnfbProvider.configure({
    android: {
      provider: _DEV_ ? 'debug' : 'playIntegrity',
      // 发布构建不需要debugToken,直接留空或移除
      debugToken: _DEV_ ? '你的调试令牌' : '',
    },
    apple: {
      provider: _DEV_ ? 'debug' : 'appAttestWithDeviceCheckFallback',
      debugToken: _DEV_ ? '你的调试令牌' : '',
    },
  });

  // 完成App Check初始化
  await appCheck.initializeAppCheck({
    provider: rnfbProvider,
    isTokenAutoRefreshEnabled: true,
  });

  // 初始化完成后再获取令牌
  try {
    const { token } = await appCheck.getToken(true);
    console.log('App Check 令牌:', token);
    if (token.length > 0) {
      Alert.alert('验证通过');
    }
  } catch (error) {
    Alert.alert('验证失败');
    console.error('App Check 错误:', error);
  }
};

发布构建额外检查项

  • Play Integrity 配置验证
    • 确保Firebase控制台中,你的Android应用已启用Play Integrity作为App Check提供方
    • 确认应用的正式签名证书SHA-256指纹已正确添加到Firebase项目设置中(不要用调试指纹)
  • 构建配置检查
    • 发布构建时,确保_DEV_变量正确设为false,避免误启用debug提供方
    • 检查android/app/build.gradle中已添加Play Integrity依赖:
      implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.0.0'
      
  • 令牌自动刷新
    • 保持isTokenAutoRefreshEnabled为true,避免令牌过期后无法自动更新导致后续请求失败

内容的提问来源于stack exchange,提问作者keval vasaniya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:03:18