uniapp 如何使用firebase cloud messaging实现消息推送
在uniapp中集成firebase cloud messaging实现消息推送时遇到了一些问题。具体流程是怎样的?需要哪些配置步骤?我已经按照官方文档尝试了,但收不到推送消息。请问如何正确对接FCM服务?是否需要额外的插件或模块?在安卓和iOS平台上配置有什么区别吗?希望能得到详细的实现指导。
2 回复
在uniapp中集成Firebase Cloud Messaging(FCM)实现推送,步骤如下:
- 创建Firebase项目,添加Android应用并下载
google-services.json文件 - 在HBuilderX中安装uni-push 2.0插件
- 配置manifest.json,填写Firebase配置参数
- 使用uni.getPushClientId获取设备标识
- 通过Firebase控制台或API发送推送消息
- 使用uni.onPushMessage监听消息接收
注意:iOS需要额外配置APNs证书。
在 UniApp 中使用 Firebase Cloud Messaging (FCM) 实现消息推送,需要结合原生插件或云函数。以下是步骤和示例代码:
步骤概述
-
配置 Firebase 项目
- 在 Firebase 控制台 创建项目,添加 Android 应用(包名需与 UniApp 中一致)。
- 下载
google-services.json文件,放置到 UniApp 项目的nativeplugins目录或原生平台目录下。
-
安装 UniApp 插件
使用官方或第三方 FCM 插件,例如DCloud-io的推送插件。在 HBuilderX 中搜索并安装。 -
集成插件到项目
- 在
manifest.json中配置插件:{ "app": { "plugins": { "push": { "version": "x.x.x", "provider": "uni-push-firebase" } } } } - 对于 Android,需在
nativeplugins中配置google-services.json路径。
- 在
-
获取设备 Token
在 UniApp 中监听设备注册事件,获取 FCM Token:uni.onPushMessage((res) => { if (res.type === 'enabled') { console.log('FCM Token:', res.token); // 将 token 发送到您的服务器保存 } }); -
发送推送消息
通过 Firebase 控制台或您的服务器调用 FCM API 发送消息。示例服务器请求(使用 curl):curl -X POST \ 'https://fcm.googleapis.com/fcm/send' \ -H 'Authorization: key=YOUR_SERVER_KEY' \ -H 'Content-Type: application/json' \ -d '{ "to": "DEVICE_TOKEN", "notification": { "title": "测试标题", "body": "测试内容" } }' -
处理接收消息
在 UniApp 中监听消息到达:uni.onPushMessage((res) => { if (res.type === 'receive') { console.log('收到推送:', res); uni.showModal({ title: res.title, content: res.content, showCancel: false }); } });
注意事项
- 平台限制:FCM 主要用于 Android,iOS 需使用 APNs(可结合 Firebase 中转)。
- 打包配置:确保原生环境正确配置,如 Android 的
google-services.json和 iOS 的证书。 - 权限:在
manifest.json中声明网络和推送权限。
通过以上步骤,即可在 UniApp 中集成 FCM 实现消息推送。如需详细配置,参考 UniApp 官方文档。

