私たちのビジネスロジックでは、実行時にFirebaseをインスタンス化する必要があります。ユーザの公開鍵を知っているの後に、デフォルトのFirebaseの場所からFirebaseの資格情報(アプリケーションID、APIキーなど)を取得し、それらの資格情報を使用してFirebaseインスタンスを作成します。私たちはそれから使用する予定 秒 動的にインスタンス化されたFirebaseからFCMトークンを生成できません
- デフォルトの「インデックス」Firebase:
これはアプリ内で使用される二つのFirebaseのインスタンスが存在することを意味しますポイント は前方
二Firebaseは次のように初期化される:
FirebaseApp app = FirebaseApp.initializeApp(<context>, <options>, <app_label>);
私たちの問題はonTokenRefresh()
方法が最初 Firebaseインスタンスによってのみ呼び出されるためFirebaseInstanceIdService
とonTokenRefresh()
を使用してFCMトークンを取得する従来の方法が失敗したということです。
String token = FirebaseInstanceId.getInstance(app).getToken();
を直接呼び出すと、呼び出し時に準備ができていないため、nullが返されます。トークンがある時点で生成されたかどうかをテストするためにこれをポーリングすることさえ試みました。運がない。
実行時にインスタンス化されたFirebaseインスタンスから確実にFCMトークンを生成できますか?