2017-01-11 8 views
2

FCM通知用にAndroidアプリが登録されていて、アプリがバックグラウンドであるか、しばらくの間に起動されていないのに、トークンが変更された場合は、onTokenRefresh()はいつ呼び出されますか?FirebaseInstanceIdService onTokenRefresh()は、アプリケーションの実行中にのみ呼び出されますか?

アプリを起動してonTokenRefresh()に電話をかけるか、次回アプリを起動したときに呼び出されますか?

おかげでここ

答えて

3

のイベントがすでにFirebaseInstanceIdService documentationに含まれています:

システムは、トークンをリフレッシュする必要があると判断したときに呼び出されます。アプリケーションはgetToken()を呼び出して、すべてのアプリケーションサーバーにトークンを送信する必要があります。

これは、非常に頻繁に呼び出されることはありません、それがキーローテーションのために必要であるとインスタンスIDを処理するためには、原因に変わり:

  • アプリケーションは、Appは、新しいデバイス
  • に復元されたインスタンスID
  • を削除しますユーザーがアンインストール/再インストールアプリ
  • ユーザーがアプリデータ

をクリアシステムでもリフレッシュを絞りますトークンの更新を伴うアプリケーション・サーバーのオーバーロードを回避するために、

また、FirebaseInstanceIdServiceクラスは、アプリケーションがフォアグラウンドかバックグラウンドかに関係なく実行できるServiceクラスを拡張します。

+0

ユーザーがgcmからfcmにアプリを更新すると、app.Willメッセージがユーザーに配信されない、または到達できない場合はどうなりますか? –

+1

@ronakPoriya GCMからFCMにアプリを移行しても、メッセージの配信に関する動作に変更はありません。 –

+0

メッセージ配信コードがMyFirebaseMessagingServiceクラスに移行されました。FirebaseInstanceIdServiceのonTokenRefresh()が呼び出されなかったため、正常に動作しませんでした。 –

2

onTokenRefresh()は、コールがどうなるかです。

  1. アプリがインストールされています。
  2. トークンが侵害されています。
  3. トークンが変更されています。

あなたの短い答えはonTokenRefresh()メソッドは、アプリケーションがフォアグラウンドまたはバックグラウンドであるかどうかに関係なく起動します。 onTokenRefresh()がトリガされた

関連する問題