Firebase 實現消息推送

Firebase Cloud Messaging

Firebase Cloud Messaging (FCM) 是一種跨平臺消息傳遞解決方案,您可以使用它免費且可靠地傳遞消息和通知。

使用 FCM,您可以通知客戶端應用存在可以同步的新電子郵件或其他數據。 您可以發送通知來重新吸引用戶和促進用戶留存。 對于即時通訊等用例,一條消息可以將最大 4KB 的負載傳送至客戶端應用。
已在使用 Google 云消息傳遞?請詳細了解您的選項。

主要功能
通用消息定位
以三種方式中的任一種將消息分發至您的客戶端應用 — 分發至單一設備、設備群組或訂閱主題的設備。

數據消息和通知支持
傳遞不超過 2KB 的通知,不超過 4KB 的數據負載,以及發送帶通知和數據負載的消息。

從客戶端應用使用上游消息傳遞
通過 FCM 可靠而省電的連接通道,將確認消息、聊天信息及其他消息從設備發回至您的服務器。

如何工作?

Firebase 云消息傳遞體系結構圖
一個 FCM 實現包括您的環境中的一個應用服務器(通過 HTTP 或 XMPP 協議與 FCM 交互)和一個客戶端應用。 此外, FCM 還包括通知控制臺,您可以使用此控制臺將通知發送至客戶端應用。
Firebase Notifications 基于 Firebase Cloud Messaging 構建并為客戶端開發使用相同的 FCM SDK。 要測試或通過強大的內置定向與 Analytics 發送營銷或互動消息,您可以使用 Notifications。 對于具有更復雜消息傳遞要求的部署, FCM 是正確選擇。

設置 Firebase Cloud Messaging

要編寫您的 Firebase Cloud Messaging Android 客戶端應用,請使用 FirebaseMessaging
API 和 Android Studio 1.4 或更高版本及 Gradle。本頁面中的說明假設您已完成將 Firebase 添加到您的 Android 項目的步驟。
FCM客戶端需要運行 Android 2.3 或更高版本的設備,且這些設備安裝了 Google Play 商店應用,或者需要運行 Android 2.3 及 Google API 的模擬器。請注意,您并非只能通過 Google Play 商店部署您的 Android 應用。
設置 Firebase 和FCM SDK
如果尚未添加,請將 Firebase 添加至您的 Android 項目

在 Android Studio 中,將 FCM 依賴項添加至您的應用級 build.gradle 文件:

dependencies { compile 'com.google.firebase:firebase-messaging:9.6.1'}

編輯您的應用清單
將以下內容添加至您應用的清單中:
一項可以擴展 FirebaseMessagingService
的服務。如果您希望在后臺進行接收應用通知之外的任何消息處理,則必須添加此服務。要在前臺應用中接收通知、接收數據負載以及發送上游消息等,您必須擴展此服務。
一項可以擴展 FirebaseInstanceIdService
的服務,用于處理注冊令牌的創建、輪轉和更新。如果要發送至特定設備或者創建設備群組,則必須添加此服務。
如果FCM對于 Android 應用的功能至關重要,應確保在清單中設置 android:minSdkVersion="8"
或更高版本。這可確保 Android 應用無法安裝在其不能正常運行的環境中。

例如:

檢查 Google Play 服務 APK

依靠 Play 服務 SDK 運行的應用在訪問 Google Play 服務功能之前,應始終檢查設備是否擁有兼容的 Google Play 服務 APK。建議在以下兩個地方進行檢查:在主 Activity 的 onCreate()
方法中,以及在其 onResume()
方法中。在 onCreate()
中檢查可確保該應用在檢查未成功之前無法使用。在 onResume()
中檢查可確保如果用戶通過某些其他方式返回正在運行的應用(比如通過返回按鈕),檢查仍將繼續進行。如果設備沒有兼容的 Google Play 服務 APK,您的應用可以調用 GooglePlayServicesUtil.getErrorDialog()
以允許用戶從 Google Play 商店下載此 APK,或在設備的系統設置中啟用它。有關代碼示例,請參閱設置 Google Play 服務
獲取設備注冊令牌
初次啟動您的應用時,FCM SDK 會為客戶端應用實例生成注冊令牌。如果您希望針對單一設備,或者創建設備群組,您將需要獲取此令牌。
您可以通過擴展 FirebaseInstanceIdService
來獲取令牌的值。確保已將服務添加至您的清單中,然后在 onTokenRefresh
上下文中調用 getToken
,并記錄下面顯示的值:

每次生成新的令牌時,onTokenRefresh
回調都會觸發,因此,在上下文中調用 getToken
可以確保您訪問當前可用的注冊令牌。如果尚未生成令牌,FirebaseInstanceID.getToken()
將返回 null。
獲取令牌后,您可以將其發送至您的應用服務器。有關 API 的完整詳情,請參閱 Instance ID API 參考

后續步驟

設置客戶端應用后,即可開始使用 Firebase 控制臺發送下游消息使用 Firebase 控制臺發送主題消息快速入門示例演示了此功能,您可以下載、運行和查看快速入門示例。
要向您的應用添加其他更高級的行為,您可以聲明 Intent 過濾器和實現 Activity 來響應傳入消息。如需了解詳情,請參閱從應用服務器發送消息的指南:
發送下游消息
發送主題消息
發送消息至設備群組
發送上游消息

請記住,您需要一個服務器實現才能充分利用這些功能。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容