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

Ionic Cordova集成Firebase FCM通知报错求助

解决Ionic集成Firebase FCM时的Promise Rejection错误

我之前也碰到过类似的问题,你这个TypeError: Invalid data, chunk must be a string or buffer, not object错误,主要是cordova-plugin-fcm和Firebase SDK版本不兼容,或者残留依赖导致的,结合你已经降级到Firebase 4.8.0的情况,给你几个针对性的解决步骤:

1. 彻底清理插件与依赖,重新安装指定版本

残留的旧插件文件或依赖缓存很容易搞出问题,按这个流程来:

  • 先卸载现有FCM插件:
    ionic cordova plugin remove cordova-plugin-fcm
    
  • 强制清理npm缓存(比verify更彻底):
    npm cache clean --force
    
  • 删除node_modules和package-lock.json:
    rm -rf node_modules package-lock.json
    
  • 重新安装npm依赖:
    npm install
    
  • 安装和Firebase 4.8.0匹配的FCM插件版本,比如v2.1.0(这个版本和4.8.x SDK兼容性较好):
    ionic cordova plugin add cordova-plugin-fcm@2.1.0
    

2. 再次核对google-services.json的细节

  • 确保文件放在项目根目录,并且是从Firebase控制台重新下载的最新版本(有时候旧文件可能有格式问题),打开文件检查JSON语法是否正确,有没有多余的逗号或者缺失的括号。
  • 仔细核对config.xml里的包名和Firebase控制台的包名,包括大小写、后缀,必须完全一致,哪怕一个字符错了都会出问题。

3. 检查Node.js版本

这个错误偶尔也和Node.js版本不兼容有关,建议切换到LTS版本(比如v14.x或v16.x),用nvm管理会很方便:

# 安装LTS版本
nvm install --lts
# 切换到该版本
nvm use --lts

切换后再重新执行插件安装命令试试。

4. 考虑替换为维护更活跃的插件

cordova-plugin-fcm已经很久没更新了,官方现在更推荐用cordova-plugin-firebase-messaging,它基于最新Firebase SDK维护,兼容性更好:

  • 卸载旧插件:
    ionic cordova plugin remove cordova-plugin-fcm
    
  • 安装新插件和对应的Ionic Native包:
    ionic cordova plugin add cordova-plugin-firebase-messaging
    npm install @ionic-native/firebase-messaging
    
    配置方式和旧插件差不多,但能避免很多版本兼容问题。

你可以按顺序试这些方法,应该能解决这个Promise Rejection的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:55:59