Firebase App Check在React Native+iOS16 App Attest环境下无法工作求助
Firebase App Check iOS权限拒绝问题排查方案
针对你在iOS 16.2环境下启用Firebase App Check强制校验后出现的permission-denied错误,可按以下步骤逐一排查:
1. 确认App Check初始化代码正确性
确保在Firebase App初始化后配置App Check,且根据环境选择正确的提供者:
import firebase from '@react-native-firebase/app'; import appCheck from '@react-native-firebase/app-check'; import { Platform } from 'react-native'; // 先初始化Firebase App firebase.initializeApp(); // 初始化App Check if (Platform.OS === 'ios') { appCheck().initializeApp({ // 开发环境用DebugProvider,生产环境用AppAttestProvider provider: __DEV__ ? appCheck.AppCheckDebugProvider : appCheck.AppAttestProvider, isTokenAutoRefreshEnabled: true, }); }
2. 开发环境调试配置
若使用真机测试开发版本:
- 在Xcode控制台搜索
AppCheck debug token获取调试Token - 登录Firebase控制台,进入App Check > 调试,将该Token添加到对应iOS应用的调试设备列表
3. 验证Firebase服务规则
确保Cloud Storage和Firestore的规则已加入App Check校验:
Firestore规则
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.app != null; } } }
Cloud Storage规则
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.app != null; } } }
4. 检查Entitlements与Xcode配置
- 确认
.entitlements文件中com.apple.developer.devicecheck.appattest-environment的值:开发环境设为development,生产环境设为production,避免环境不匹配 - 检查Xcode中签名与功能的App Attest功能是否正确添加,且签名团队与Firebase控制台配置的团队ID一致
5. 排查版本与兼容性
- 确认
@react-native-firebase/app与@react-native-firebase/app-check版本完全一致,避免版本冲突 - 运行
yarn list @react-native-firebase/app和yarn list @react-native-firebase/app-check验证版本匹配
6. 查看日志定位问题
在Xcode控制台中搜索App Check相关日志:
- 若存在
[AppCheck] Error fetching token类错误,说明Token获取失败,需检查网络连接、Apple开发者密钥配置或设备权限 - 若Token获取成功但仍报错,需确认Firebase服务规则是否正确生效
7. 设备与环境验证
- 模拟器不支持App Attest,开发测试需使用真实设备,且确保设备网络可正常访问Firebase服务(避免代理或VPN干扰)
- 确认Firebase控制台中对应iOS应用的App Attest、DeviceCheck已启用,状态正常
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

