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
相关产品推荐
相关产品推荐

