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

React Native iOS端FCM获取Token报错:需先注册远程消息

解决React Native iOS FCM getToken报错:messaging/unregistered

错误提示明确指出,iOS环境下调用getToken前必须先调用messaging().registerDeviceForRemoteMessages()——iOS需要显式完成设备到APNs的注册流程,FCM才能生成并返回有效Token,你的代码缺少这一关键步骤,导致报错。

修改后的完整代码

import messaging from '@react-native-firebase/messaging';

export async function requestUserPermission() {
  const authStatus = await messaging().requestPermission();
  const enabled =
    authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
    authStatus === messaging.AuthorizationStatus.PROVISIONAL;

  if (enabled) {
    console.log('Authorization status:', authStatus);
    // iOS专属:先注册远程消息,再请求Token
    await messaging().registerDeviceForRemoteMessages();
    getFcmToken();
  }
}

const getFcmToken = async () => {
  try {
    const fcmToken = await messaging().getToken();
    console.log("fcm token generated", fcmToken);
  } catch (error) {
    console.log("Error in fcm token", error);
    alert(error?.message);
  }
};

额外注意要点

  • registerDeviceForRemoteMessages()是iOS平台专属方法,Android调用不会产生负面影响,无需额外做平台判断。
  • 确保iOS项目已完成FCM基础配置:Firebase控制台上传APNs认证密钥、Xcode开启推送通知能力、Info.plist添加推送权限描述。
  • 若仍报错,检查AppDelegate文件中是否正确实现了FCM原生回调(比如didRegisterForRemoteNotificationsWithDeviceToken方法)。

内容的提问来源于stack exchange,提问作者Shubham Aggarwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:52:44