uniapp如何集成firebasemessaging实现消息推送

在uniapp中如何集成Firebase Messaging实现消息推送功能?需要哪些具体步骤和配置?有没有遇到过的常见问题和解决方案可以分享?

2 回复

在uniapp中集成Firebase Messaging,需先安装uni-push插件,配置Firebase项目并下载google-services.json文件。在manifest.json中配置推送参数,使用uni.subscribePush订阅推送,通过uni.onPushMessage监听消息。注意需在Firebase控制台设置SHA1证书指纹。


在 UniApp 中集成 Firebase Cloud Messaging (FCM) 实现消息推送,需结合 uni-push 2.0 或原生插件。以下是基于 Android 平台的步骤(iOS 需额外配置 APNs):

步骤 1:配置 Firebase 项目

  1. 访问 Firebase Console,创建项目并添加 Android 应用。
  2. 下载 google-services.json 文件,放置到 UniApp 项目的 nativeplugins 或原生平台目录(如 platforms/android/app/)。

步骤 2:安装依赖

  • 使用 uni-push 2.0(推荐): 在 HBuilderX 中启用 uni-push 2.0,并配置 FCM 参数。
  • 或使用原生插件: 通过 UniApp 原生插件市场安装 Firebase 推送插件(如 “Firebase Push”)。

步骤 3:修改原生配置

Android

  1. platforms/android/app/build.gradle 中添加依赖:
    implementation 'com.google.firebase:firebase-messaging:23.0.0'
    
  2. AndroidManifest.xml 中注册服务:
    <service android:name="io.dcloud.unipush.UniPushMessageService" 
             android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    

步骤 4:UniApp 代码集成

// 初始化推送(在 App.vue 的 onLaunch 中)
uni.getPushClientId({
  success: (res) => {
    console.log('推送客户端ID:', res.cid); // 用于后端发送消息
  }
});

// 监听消息
uni.onPushMessage((res) => {
  console.log('收到推送:', res);
  // 处理消息内容
});

// 请求推送权限(可选)
uni.requestPushPermission();

步骤 5:后端发送消息

通过 Firebase Admin SDK 或 HTTP 请求向 FCM 发送通知,目标为获取的 clientId

注意事项

  1. iOS 配置:需在 Firebase 中上传 APNs 证书,并在 UniApp 中配置 iOS 推送参数。
  2. 调试:使用真机测试,确保 Google Play 服务可用。
  3. 厂商通道:国内安卓设备可配置小米、华为等厂商通道提升送达率。

替代方案

若使用 uni-push 2.0,可直接通过 DCloud 后台配置 FCM 参数,简化集成流程。

以上步骤覆盖了基础集成流程,具体细节需根据项目调整。

回到顶部