Android Firebase推送集成的巨坑記錄

國(guó)內(nèi)應(yīng)用很少用到國(guó)外的推送,在網(wǎng)上的資料也比較少,在公司集成Firebase的時(shí)候遇到很多坑,目前來(lái)說遇到的最大的坑就是Firebase的消息推送。這個(gè)問題卡了我大半天,謹(jǐn)以此記錄一下。

準(zhǔn)備條件

1.將Firebase添加至Android項(xiàng)目,具體細(xì)節(jié)請(qǐng)?jiān)敿?xì)查看這位大神的文章。注意:google-services.json不要弄錯(cuò)

2.在獲取到token令牌后,上傳服務(wù)器成功(自備梯子)。

遇坑情況

在firebase后臺(tái)推送的時(shí)候,不管App是處于前臺(tái)還是后臺(tái)的時(shí)候都能收到消息,但是將App應(yīng)用殺死后,卻始終收不到推送消息(需求是要不管App是否存活,都要收到消息),在網(wǎng)上百度了很久后才發(fā)現(xiàn)解決的辦法有兩種。

解決辦法

1.服務(wù)端的json數(shù)據(jù)文件里面不要少了"icon:"這個(gè)字段

{
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon" //一定不能缺少這個(gè)字段
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }

2.如果以上所有的條件都滿足,殺死App后還是收不到推送消息,這時(shí)候就要考慮手機(jī)的問題了,首先要去App應(yīng)用管理里面,打開通知欄權(quán)限,然后看是否有“自啟動(dòng)”這個(gè)開關(guān),如果有就將它打開,然后重新運(yùn)行App,再推送。這些都嘗試之后,還是不行,就重啟手機(jī)或者換一臺(tái)手機(jī)測(cè)試,絕對(duì)可行??!

3.最好使用國(guó)外的真機(jī)測(cè)試(ps:港版的手機(jī)也行)。首先測(cè)試一下Facebook應(yīng)用在后臺(tái)被干掉的情形下是否能收到好友消息,如果不能收到即可排除是手機(jī)自身的問題(原因很多,不一一贅述);如果某款手機(jī)的Facebook能在后臺(tái)被干掉的情形下收到好友的消息,即這款手機(jī)是符合google三件套系列的原生手機(jī),一般這種情況下,測(cè)試自己的應(yīng)用也能在被干掉的情形下收到firebase后臺(tái)推送的測(cè)試消息,如果這時(shí)候還收不到說明自己集成的代碼有問題,得好好自查一下了。

參考文章:
國(guó)外的Android系統(tǒng)“即使App不在后臺(tái)運(yùn)行,也能獲得推送”的簡(jiǎn)單分析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容