上篇回顧:│FireBase│ WebAPI發送推播實作步驟
今天來介紹Google旗下FireBase推播的功能,推播簡單來說就是由系統發送管理者想傳達給消費者或特定人的訊息資訊,在由接消費者的接收狀況來做後續的行銷動作,而FireBase是怎麼知道要發送給誰的呢?我們的系統與FireBase是怎麼做連結的呢?有沒有什麼限制呢?下面文章一一告訴你~
1 推播原理流程
我們以手機推播為例,User會先在註冊APP時一併註冊FireBase Token,放入後端Service的資料庫中。而後端Service要推送推播時會先呼叫FireBase,告知FireBase要推送給哪些Token與推播內容,在藉由FireBase去傳送推播出去,User登出APP時要記得註銷後端Service紀錄的Token,否則使用者會一直收到推播訊息,以上推播流程聽起來很饒口吧?我們來上!圖!解!
(1) User在註冊APP時一併註冊FireBase Token,放入後端Service的資料庫中,當User的裝置在FireBase註冊Token時,FireBase會依照手機裝 置的序號給予一組獨一無二的Token,意思就是說當FireBase發送推播時他並不是針對APP系統去發送推播,而是針對手機本身。
(2) 後端Service推播,如其中對象有Token是錯誤的則整組推播無法發送,傳遞發送對象時可以針對一組Token去做發送,也可以組成List對群組去做發送。
(3) User登出APP時要記得註銷後端Service紀錄的Token,否則使用者會一直收到推播訊息。
2 通知與數據在傳送上的差別
這兩種訊息推播在用法上的差別就是,Notification 是 FireBase 預先定義好的Key值,包含了通知上用戶可見的資訊像是標題(Title)、內容(Body)、圖示(icon)…等,Notification 會自動被 Firebas拿去顯示成推播;Data 則是代表剩下User在通知上看不到的資料,可以被前端拿去做更多邏輯上的處理。
(1) 通知(Notification) :當APP處於背景 FireBase會直接進行處理傳送,當APP處於前景時需調用onMessageReceived()才會收的到通知。
(2) 數據(Data) :不管APP處於背景或前景都必需調用onMessageReceived() 才會收到通知。
3 專案與手機推播則數上限
(1) FireBase每個專案傳送上限為 1,500,000(則)/ 分鐘
(2) 手機接收上限為1,000(則)/ 分鐘
結語
在這次公司的專案裡實作FireBase推播真的不是件容易的事情,很多細節一開始都沒有顧到(比如說User登出要註銷Token避免誤發送),都是在一次次測試與調整過後的結果,希望這篇可以對初入FireBase的同伴們有點幫助,多一點對FireBase的了解~
參考文獻