-
官方文檔和參考
/// 相關文檔
/// 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
-
代碼相關
注意在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,連續打兩遍同一客戶端分支即可
-
導入firebase插件包注意幾個選項
Auto-resolution在編輯器下可以打開 但在打包時關閉
避免在打包時修改mainTemplate.gradle帶來的不確定性
也可以在菜單中修改設置(ExternalDependencyManager在工程內時才能看到該菜單)
相關設置最后影響的文件如下
導入后的文件,建議生成GeneratedLocalRepo
以上文件目錄可以修改,注意修改目錄后gradle中也要修改
建議不要引入androidx相關文件
-
XML相關
新增以下service(來自firebase demo中的自動生成的xml)
-
gradle相關
首先切換switch target platform到安卓 導入firebase配置文件(android和ios兩份)
以上自動生成 注意改換
-
依賴相關錯誤
https://developer.android.com/studio/build/dependencies#view-dependency-tree
https://developer.android.com/studio/build/dependencies#duplicate_classes
注意firebase會自動修改gradle中的依賴信息
注意不要與libs下的jar重復
-
生成AAR相關
打開as工程,添加firebase相關代碼
注意需要手動引入需要的類(快捷操作雙擊MessageForwardingService后按住Alt+Enter)
import com.google.firebase.messaging.MessageForwardingService;
另外可能還需要導入(為保證生成AAR成功)
最后生成AAR
生成后的AAR(改名然后替換)
-
打包相關
需要注意Plugins/Android目錄在打包時會被拷貝覆蓋
因此需要將其中的內容拷到SDK相應目錄下
若缺少該文件(尤其是其中的google-services.xml)會報以下錯誤導致firebase初始化失敗
-
測試相關
測試機需要安裝谷歌服務
測試第一步要拿到token
只需要手機FQ且配置信息正確(如圖)
每次啟動token不變,卸載重新安裝后token發生改變
token形如cH1uQuLVTwWzXN3K85ovu6:APA91bHZJpjT8Li4VozSVuknH0TDa6BRd_ec9HHLf6FjJU48QuEnA8tVO9mZjyKhIViAitqv_7ZWrwrgC9L9iTlzSrpFeaSFiKXGoqDX-F7rYhowMsSuUSdeqiwbkCTJNRXrlDad7mrd
第二步接收推送並拉起游戲進程
同樣需要手機FQ,同時token已上報服務端
當游戲后台運行時,可以收到推送消息,點擊后喚起
當游戲未運行時,若需要接收推送消息,需要設置程序自啟動,與機型也相關(手動設置可行,自動設置權限還沒試過)
有時因為VPN的原因 推送消息可能會延遲收到,建議用一個firebase的參照demo來對照測試排除VPN造成的推送消息延遲(可能延遲很久)