# Discourse 移动推送——用于移动应用的 FCM 推送通知

**URL:** <https://meta.discourse.org/t/discourse-mobile-push-fcm-push-notifications-for-mobile-apps/414258>\
**Category:** Extras\
**Created:** [2026年十月8日 14:19 UTC](https://meta.discourse.org/t/discourse-mobile-push-fcm-push-notifications-for-mobile-apps/414258 "2026-10-08T14:19:16Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_Sandler](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michael_sandler/32/424958_2.png) [@Michael\_Sandler](https://meta.discourse.org/u/Michael_Sandler)\
**Post date:** [2026年十月8日 14:19 UTC](https://meta.discourse.org/t/discourse-mobile-push-fcm-push-notifications-for-mobile-apps/414258/1 "2026-10-08T14:19:16Z")

</div>

我开发了一个新的 Discourse 插件，用于通过 Firebase Cloud Messaging (FCM) 向原生 Android/iOS 应用发送推送通知。

> **[GitHub - mikeyboysan/discourse-mobile-push: Mobile push notifications for Discourse, with FCM...](https://github.com/mikeyboysan/discourse-mobile-push)**
>
> Mobile push notifications for Discourse, with FCM support and a provider-independent architecture

## 为什么？

现有的 [`discourse-fcm-notifications`](https://github.com/discourse/discourse-fcm-notifications) 插件提供了类似的功能，但它已不再与当前版本的 Discourse 保持同步。在当前的 Discourse 安装环境中安装该插件会产生警告。

我在其他测试人员的设备上尝试运行旧插件时遇到了困难。与其尝试更新它，我决定从头开始构建一个新的实现。

## 功能

- 面向原生移动应用的 FCM 推送通知
- 每个用户支持多台设备
- 通过 API 进行设备注册和移除
- 深度链接（Deep links）至相关的 Discourse 主题、帖子或聊天
- 自动移除无效/过期的 FCM 令牌
- 针对 Firebase 临时故障的重试处理
- 可选的隐私模式，使用通用的通知内容
- 管理员诊断和测试通知工具
- 利用 Discourse 现有的通知系统和用户偏好设置

该插件旨在提供 Discourse 与原生移动应用之间的 **传输层** ；Discourse 仍然负责决定用户接收哪些通知。

## AI 辅助开发

该插件的很大一部分是在 AI 的辅助下开发的。我在这里发布它，部分原因是希望获得经验丰富的 Discourse 开发者的反馈，并找出任何需要更改或改进的地方。

它采用 MIT 许可证。

欢迎反馈、错误报告和建议。

---

<div class="post-metadata">

**Author:** ![Michael\_Sandler](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/michael_sandler/32/424958_2.png) [@Michael\_Sandler](https://meta.discourse.org/u/Michael_Sandler)\
**Post date:** [2026年十月8日 14:37 UTC](https://meta.discourse.org/t/discourse-mobile-push-fcm-push-notifications-for-mobile-apps/414258/2 "2026-10-08T14:37:32Z")

</div>

我很乐意分享我在为我的 Discourse 论坛开发的 Flutter 封装应用中是如何实现这一功能的。我目前只完成了 Android 端，还没有做 Apple 端。
