Unity接入Firebase推送


  1. 官方文檔和參考

 

    /// 相關文檔

    /// https://firebase.google.cn/docs/unity/setup

    /// https://firebase.google.cn/docs/cloud-messaging/unity/client

    /// 相關后台

    /// https://console.firebase.google.com/

    /// 相關下載

    /// https://firebase.google.cn/download/unity

 

  1. 代碼相關

 

注意在check成功后再添加回調

 

Assets/Third/Firebase/FirebaseManager.cs(28,16): error CS0246: The type or namespace name 'Firebase' could not be found (are you missing a using directive or an assembly reference?)

編譯報錯有兩種情況

1是宏相關的文件找不到,注意若是firebase相關文件沒有在工程里面,其他相關代碼使用#if FIREBASE 來編寫的話,要確保先拷貝firebase相關文件,再AssetsDatabase.refresh,再修改宏,注意順序

2是若無關的其余類找不到,可能是Jenkins切換客戶端分支時的bug,連續打兩遍同一客戶端分支即可

 

  1. 導入firebase插件包注意幾個選項

Auto-resolution在編輯器下可以打開 但在打包時關閉

避免在打包時修改mainTemplate.gradle帶來的不確定性

也可以在菜單中修改設置(ExternalDependencyManager在工程內時才能看到該菜單)

相關設置最后影響的文件如下

 

導入后的文件,建議生成GeneratedLocalRepo

以上文件目錄可以修改,注意修改目錄后gradle中也要修改

 

建議不要引入androidx相關文件

 

  1. XML相關

新增以下service(來自firebase demo中的自動生成的xml)

 

  1. gradle相關

首先切換switch target platform到安卓 導入firebase配置文件(android和ios兩份)

以上自動生成 注意改換

 

  1. 依賴相關錯誤

 

https://developer.android.com/studio/build/dependencies#view-dependency-tree

https://developer.android.com/studio/build/dependencies#duplicate_classes

注意firebase會自動修改gradle中的依賴信息

注意不要與libs下的jar重復

 

  1. 生成AAR相關

打開as工程,添加firebase相關代碼

注意需要手動引入需要的類(快捷操作雙擊MessageForwardingService后按住Alt+Enter)

import com.google.firebase.messaging.MessageForwardingService;

另外可能還需要導入(為保證生成AAR成功)

最后生成AAR

生成后的AAR(改名然后替換)

 

  1. 打包相關

需要注意Plugins/Android目錄在打包時會被拷貝覆蓋

因此需要將其中的內容拷到SDK相應目錄下

若缺少該文件(尤其是其中的google-services.xml)會報以下錯誤導致firebase初始化失敗

 

  1. 測試相關

測試機需要安裝谷歌服務

測試第一步要拿到token

只需要手機FQ且配置信息正確(如圖)

每次啟動token不變,卸載重新安裝后token發生改變

token形如cH1uQuLVTwWzXN3K85ovu6:APA91bHZJpjT8Li4VozSVuknH0TDa6BRd_ec9HHLf6FjJU48QuEnA8tVO9mZjyKhIViAitqv_7ZWrwrgC9L9iTlzSrpFeaSFiKXGoqDX-F7rYhowMsSuUSdeqiwbkCTJNRXrlDad7mrd

 

第二步接收推送並拉起游戲進程

同樣需要手機FQ,同時token已上報服務端

當游戲后台運行時,可以收到推送消息,點擊后喚起

當游戲未運行時,若需要接收推送消息,需要設置程序自啟動,與機型也相關(手動設置可行,自動設置權限還沒試過)

有時因為VPN的原因 推送消息可能會延遲收到,建議用一個firebase的參照demo來對照測試排除VPN造成的推送消息延遲(可能延遲很久)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM