2017-09-07 9 views
0

InstanceIDが作成されたときに初めてそれが開かれたときに何の効果がないのか分かりません。初めてアプリケーションを開くときにFirebase Instance IDを作成する

初めてアプリを実行すると、このコードはnullを返します。

FirebaseInstanceId.getInstance().getToken(); 

私もループを試して、何かを返すまで待っていましたが運がありません。

ただし、アプリケーションを終了してもう一度開くと、InstanceIDが取得されます。任意の手掛かりはなぜですか?私はアプリのスプラッシュ画面でそれを取得しようとしています。

onTokenRefreshは、再起動するまで呼び出されていません。私はいくつかの回避策を見ることができます...しかし、単にバットからそれを得ることを好む。

ありがとうございます!

答えて

0

the documentationから:

のアプリの初回起動時には、FCM SDKは、クライアントアプリケーションのインスタンスの登録 トークンを生成します。単一の デバイスを対象にする場合や、デバイスグループを作成する場合は、 FirebaseInstanceIdServiceを拡張することによってこのトークンにアクセスする必要があります。

あなたは、FirebaseInstanceIdServiceをサブクラスマニフェストにそのサービスを追加し、トークンにすべての更新の通知を取得するonTokenRefresh()をオーバーライドする必要があります。

FirebaseInstanceId.getInstance().getToken()がnullを返す場合、それはまだ利用可能なトークンがないことを意味します。だからあなたはサービスの代わりにそれを待つべきです。

+0

ええ、私はそれをすべて得た。私は世代を呼び出す方法がないと思う。私の問題は、それが生成するには時間がかかりすぎるということです。 –

0

それが作成されているのではなく、適切に節約されています。それは当時のものの一つだった。

関連する問題