uniapp 如何使用firebase cloud messaging实现消息推送

在uniapp中集成firebase cloud messaging实现消息推送时遇到了一些问题。具体流程是怎样的?需要哪些配置步骤?我已经按照官方文档尝试了,但收不到推送消息。请问如何正确对接FCM服务?是否需要额外的插件或模块?在安卓和iOS平台上配置有什么区别吗?希望能得到详细的实现指导。

2 回复

在uniapp中集成Firebase Cloud Messaging(FCM)实现推送,步骤如下:

  1. 创建Firebase项目,添加Android应用并下载google-services.json文件
  2. 在HBuilderX中安装uni-push 2.0插件
  3. 配置manifest.json,填写Firebase配置参数
  4. 使用uni.getPushClientId获取设备标识
  5. 通过Firebase控制台或API发送推送消息
  6. 使用uni.onPushMessage监听消息接收

注意:iOS需要额外配置APNs证书。


在 UniApp 中使用 Firebase Cloud Messaging (FCM) 实现消息推送,需要结合原生插件或云函数。以下是步骤和示例代码:

步骤概述

  1. 配置 Firebase 项目

    • Firebase 控制台 创建项目,添加 Android 应用(包名需与 UniApp 中一致)。
    • 下载 google-services.json 文件,放置到 UniApp 项目的 nativeplugins 目录或原生平台目录下。
  2. 安装 UniApp 插件
    使用官方或第三方 FCM 插件,例如 DCloud-io 的推送插件。在 HBuilderX 中搜索并安装。

  3. 集成插件到项目

    • manifest.json 中配置插件:
      {
        "app": {
          "plugins": {
            "push": {
              "version": "x.x.x",
              "provider": "uni-push-firebase"
            }
          }
        }
      }
      
    • 对于 Android,需在 nativeplugins 中配置 google-services.json 路径。
  4. 获取设备 Token
    在 UniApp 中监听设备注册事件,获取 FCM Token:

    uni.onPushMessage((res) => {
      if (res.type === 'enabled') {
        console.log('FCM Token:', res.token);
        // 将 token 发送到您的服务器保存
      }
    });
    
  5. 发送推送消息
    通过 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": "测试内容"
        }
      }'
    
  6. 处理接收消息
    在 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 官方文档

回到顶部