讲师中心 微信公众号
AI工具推荐 视频效率加速

uni-app如何集成Firebase推送

浅雪同学_9948

浅雪同学_9948

发布时间:2026-06-03 08:27:34

|

686人浏览过

|

来源于php中文网

原创

iOS上uni.onPush不触发主因是provider误设为'unipush',正确应为'firebase';Android收不到token多因google-services.json位置错误或Firebase插件未启用。

直接说结论:ios 上 uni.onpush 不触发,90% 是因为 provider 写成了 'unipush',而实际该用 'firebase';android 上收不到 token,大概率是 google-services.json 没放对位置,或 nativeplugins 里根本没启用 firebase 插件。

provider 必须设为 'firebase',不是 'unipush'

UniApp 的 uni.onPush 是个统一入口,但底层不认“firebase”这个词——它只认插件注册时声明的 provider 名。DCloud 官方 uni-push-2 插件默认 provider 是 'unipush',而 Firebase 插件(如 firebase-push)必须显式指定 provider: 'firebase',否则 JS 层监听完全失效。

常见错误现象:

  • uni.onPush 回调函数从不执行,控制台也无报错
  • 调用 uni.getProvider 查到 push 列表里压根没有 firebase

实操建议:

  • 确认 nativeplugins/firebase-push/ 目录存在,且含 android 和 ios 子目录
  • HBuilderX 中打开「原生插件配置」→ 找到该插件 → 勾选 Android + iOS → 点击「保存」
  • 代码中必须写成:uni.onPush({ provider: 'firebase', success() { ... } })
  • 不要在 onShow 或页面生命周期里调用,必须放在 App.vue 的 onLaunch 或 onShow(首次启动后)

google-services.json 和 GoogleService-Info.plist 放哪才生效

这两个文件不是“丢进项目根目录就行”。它们必须被原生插件在编译期识别并注入到对应平台工程中,路径和命名都严格限定。

Android:

  • 文件必须放在 nativeplugins/firebase-push/android/ 下(不是 nativeplugins/ 根目录)
  • 文件名必须一字不差是 google-services.json(大小写敏感)
  • 检查 manifest.json 中 app-plus → android → permissions 是否包含网络权限(android.permission.INTERNET)

iOS:

uni-app
uni-app

uni-app 是基于 Vue 的跨端开发框架,适合开发 H5、App、小程序、鸿蒙和多端业务应用。

下载
  • GoogleService-Info.plist 必须放在 nativeplugins/firebase-push/ios/ 下
  • HBuilderX 导出 IPA 前,需手动打开 Xcode 工程,确认已开启:Background Modes → Remote notifications 和 Push Notifications
  • manifest.json 中必须有:"app-plus": { "ios": { "uses": { "push": true } } }

FCM 消息类型决定 JS 能否收到回调

很多人以为“推送发出去了,JS 就该能监听到”,其实 FCM 分两类消息,行为完全不同:

  • Notification 消息:由系统托盘自动展示,App 在后台或杀死状态都能收到,但 JS 层 不会触发 uni.onPushMessage
  • Data 消息:不展示通知,只在 App 前台运行时 触发 uni.onPushMessage 回调

所以如果你测试时把 App 杀掉再点通知,发现 uni.onPushMessage 没执行——这完全正常,不是 bug。

实操建议:

  • 调试阶段,后端发消息时务必带 "data": { "key": "value" } 字段,强制走 data 消息通道
  • 上线后,通知类逻辑应拆开:托盘通知由系统处理;点击跳转逻辑要靠 uni.getPushMessage() 在 onLaunch 和 onShow 中取参还原
  • iOS 上首次启动时,uni.getPushMessage() 可能返回空对象,需加防错判断

iOS 获取 token 失败的三个硬性条件

Android 调 messaging.getToken() 通常能拿到 token,iOS 却常卡在 undefined 或 Promise.reject,根源不在 JS,而在原生配置缺一不可:

  • Bundle ID 必须和 Firebase 控制台注册的 iOS 应用完全一致(包括大小写)
  • 开发证书(.p12)必须绑定 APNs 推送能力,且导出的 .pem 文件与之配对
  • Xcode entitlements 文件里必须有 aps-environment 字段,值为 development(开发)或 production(发布)

如果 Xcode 报错 no valid "aps-environment" entitlement string found,说明证书没开通推送,得回 Firebase 控制台重新下载 GoogleService-Info.plist 并核对 Bundle ID —— 这步漏掉,token 永远拿不到。

热门AI工具

更多
花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2783

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

6063

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6990

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

6778

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

963

2024.05.22

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2235

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3562

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1196

2023.10.13

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

0

2026.11.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn