我們的業務邏輯要求我們在運行時實例化Firebase。我們從默認Firebase位置獲取Firebase憑據(應用ID,API密鑰等),然後知道用戶的公鑰,並使用這些憑據創建Firebase實例。無法從動態實例化生成FCM令牌Firebase
這意味着有在應用程序中使用的兩個火力地堡實例:
- 默認的「指數」火力地堡給我們,我們打算從使用的 第二
- 實際火力地堡憑據點 向前
第二火力地堡被初始化這樣的:
FirebaseApp app = FirebaseApp.initializeApp(<context>, <options>, <app_label>);
我們的問題是,由於onTokenRefresh()
方法由第一火力地堡實例只叫檢索使用FirebaseInstanceIdService
和onTokenRefresh()
的FCM令牌的傳統方法失敗。
直接調用String token = FirebaseInstanceId.getInstance(app).getToken();
返回null,因爲它在調用時從未準備好。我們甚至嘗試過對此進行輪詢,以測試某個點是否生成了令牌。沒有運氣。
如何從運行時實例化的Firebase實例可靠地生成FCM令牌?