RN Firebase Messaging安卓正常iOS端推送通知失效问题排查
修复排查步骤
- 修正Firebase初始化逻辑
你Xcode日志中存在The default Firebase app has not yet been configured的明确报错,当前你在AppDelegate.m的didFinishLaunchingWithOptions方法中添加了非空判断才执行初始化,会导致Firebase组件加载时初始化未完成。直接删除判断逻辑,方法进入后第一行就执行配置:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 移除if判断,直接调用 [FIRApp configure]; // 原有后续逻辑 }
- 主动调用推送权限请求方法
你index.js中定义了requestUserPermission权限请求方法,但没有触发调用逻辑,iOS必须用户授权后才能接收推送。在入口组件的useEffect中添加调用逻辑:
useEffect(() => { // 新增权限请求调用 requestUserPermission(); console.log('RN Message Called on USEFFECT!'); const unsubscribe = messaging().onMessage(async remoteMessage => { Alert.alert('A new FCM message arrived!', JSON.stringify(remoteMessage)); }); return unsubscribe; }, []);
- 检查Xcode能力配置
确认Xcode对应Target的Signing & Capabilities页已添加两项配置:
- 添加
Push Notifications能力 - 添加
Background Modes能力,勾选其中的Remote notifications选项
- 验证Firebase APNs证书配置
确认你在苹果开发者后台生成的开发、生产环境APNs证书,已经上传到Firebase控制台对应iOS项目的Cloud Messaging配置页,否则FCM无法对接苹果推送服务。 - 验证FCM Token获取
权限请求通过后添加messaging().getToken()调用,打印iOS端生成的FCM Token,确认能正常获取后,可直接在Firebase控制台用该Token发送测试推送验证功能。
内容的提问来源于stack exchange,提问作者DaleZA
相关产品推荐
相关产品推荐

