在進入與 Firebase 和 Azure 串聯之前,這篇文章會先做知識前導。
React Native / Expo 推播通知
Expo 本身就存有自己的推播通知模組 Expo Notifications,但我們也可以串聯其他具推播功能的平台。兩種做法也關乎我們要使用哪一種 Workflow,關於 Workflow 可以閱讀文章 「React Native / Expo Workflow」。
功能 / 能力 | Managed Workflow (EAS + Expo Notifications) |
Bare Workflow (原生整合 FCM / APNs) |
---|---|---|
工具 | Expo API 內建支援 不須再分 FCM / APNs |
自行串接 SDK,例如 Firebase |
工具運作方式 | 使用 ExponentPushToken |
第三方 SDK 產生的 Device Token |
基本推播通知 (標題、內文、點擊導頁) |
支援 | 支援 |
富通知 (圖片、大圖、互動按鈕) |
支援有限 | 支援 |
靜默通知 (Silent / Background Data) |
部分支援 | 支援 |
整合第三方服務 (Azure / OneSignal) |
不支援 | 可串接 REST API / SDK |
原生推播設定控制 (頻道、分類、優先級) |
部分支援,依 JS 設定 | 支援 |
整合與開發難度 | 最簡單、快速 | 較高,需原生知識 |
Firebase
- 由 Google 提供,為行動與網頁應用打造的後端平台,包含認證、資料庫、儲存、分析、推播等功能。
- 可使用 Firebase Cloud Messaging (FCM) 傳送通知到 Android、iOS 和 Web。
- 提供 主題訂閱(topic) 和 裝置群組(device group) 等方式分類用戶。
Azure
- 由 Microsoft 提供,適合中大型系統與企業級應用的雲端平台,支援虛擬機、資料庫、AI、IoT、DevOps 等服務。
- 使用 Azure Notification Hubs 管理和發送推播訊息,支援 Apple(APNs)、Google(FCM)、Microsoft(WNS、MPNS)等多種平台。
- 可設定 tag 做分類發送,以及定義 template 發送樣板方便使用樣板字樣推播。
延伸閱讀
雖然這系列文會以串 Firebase + Azure 為主題,也同時附上 Expo Notifications 供參。
下一篇文章將介紹 Firebase 和 Azure 串聯設定。