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

React Native Firebase无法使用@react-native-firebase/iid 如何获取设备推送令牌

问题原因

React Native Firebase v12及以上版本已正式废弃并移除@react-native-firebase/iid包,原IID模块的设备令牌获取能力已迁移至@react-native-firebase/messaging模块。

解决方案

  • 调整依赖
    移除废弃的IID包,安装和你项目现有其他Firebase依赖版本完全一致的Messaging模块:
# npm操作
npm uninstall @react-native-firebase/iid
npm install @react-native-firebase/messaging@<你的项目现有Firebase包版本号>

# yarn操作
yarn remove @react-native-firebase/iid
yarn add @react-native-firebase/messaging@<你的项目现有Firebase包版本号>
  • 替换业务代码
    将原IID的令牌获取逻辑替换为Messaging模块的对应逻辑,iOS端需先申请推送权限才能正常获取令牌:
// 替换原有iid导入语句
import messaging from '@react-native-firebase/messaging';
import { Platform } from 'react-native';

// 获取设备令牌逻辑
const fetchPushToken = async () => {
  // iOS端必须先申请推送权限
  if (Platform.OS === 'ios') {
    const permissionStatus = await messaging().requestPermission();
    const hasPermission = permissionStatus === messaging.AuthorizationStatus.AUTHORIZED 
      || permissionStatus === messaging.AuthorizationStatus.PROVISIONAL;
    if (!hasPermission) {
      return null;
    }
  }
  // 获取设备推送令牌
  const deviceToken = await messaging().getToken();
  return deviceToken;
}

补充说明

新接口返回的令牌和原有IID接口返回的令牌完全兼容,原有的向指定设备下发推送的逻辑无需任何修改。

内容的提问来源于stack exchange,提问作者Arnaud Fouchet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:12:02