LoginSignup
56
47

More than 3 years have passed since last update.

Firebase Cloud MessagingのFCMトークン更新タイミングについて

Last updated at Posted at 2019-11-13

FCMトークンの仕様

Firebase Cloud Messagingを使ってアプリへのプッシュ通知テストをする際に、Firebaseコンソール上で対象デバイスのFCMトークンを登録する必要があります。
スクリーンショット 2019-11-13 18.24.32.png
このFCMトークンがデバッグ中にいつのまにか変わっていることがあり、挙動を把握するためドキュメントで仕様を確認してみました。

OS毎に挙動が異なるようだったので、それぞれの生成・更新タイミングをメモしておきます。

Android

【参照】Android で Firebase Cloud Messaging クライアント アプリを設定する | Firebase

生成タイミング

アプリを初めて起動すると、クライアント アプリのインスタンスの登録トークンが FCM SDK によって生成されます。単一のデバイスを対象にする場合、またはデバイス グループを作成する場合は、FirebaseMessagingService を拡張して onNewToken をオーバーライドすることで、このトークンにアクセスする必要があります。

https://firebase.google.com/docs/cloud-messaging/android/client?hl=jp#sample-register

更新タイミング

トークンは最初の起動後にローテーションされている可能性があるため、更新された最新の登録トークンを取得することを強くおすすめします。

登録トークンは次のような場合に変更されることがあります。

  • アプリによってインスタンス ID が削除される場合
  • アプリが新しいデバイスで復元される場合
  • ユーザーがアプリをアンインストール / 再インストールする場合
  • ユーザーがアプリのデータを消去する場合

https://firebase.google.com/docs/cloud-messaging/android/client?hl=jp#sample-register

iOS

【参照】iOS で Firebase Cloud Messaging クライアント アプリを設定する | Firebase

生成タイミング

デフォルトでは、FCM SDK はアプリの起動時にクライアント アプリのインスタンスの登録トークンを生成します。APNs デバイス トークンの場合と同様に、このトークンを使用すると、ターゲットとする通知をアプリの特定のインスタンスに送信できます。

https://firebase.google.com/docs/cloud-messaging/ios/client?hl=jp#access_the_registration_token

更新タイミング

iOS が通常、アプリ起動時に APNs デバイス トークンを配信するのと同じ方法で、FCM は FIRMessagingDelegate の messaging:didReceiveRegistrationToken: メソッドによって登録トークンを提供します。FCM SDK は、アプリの初期起動時ならびにトークンが更新または無効化されるたびに、新規または既存のトークンを取得します。いずれの場合も、FCM SDK は有効なトークンを使用して messaging:didReceiveRegistrationToken: を呼び出します。

登録トークンは次のような場合に変更されることがあります。

  • アプリが新しいデバイスで復元される場合
  • ユーザーがアプリをアンインストール / 再インストールする場合
  • ユーザーがアプリのデータを消去する場合

https://firebase.google.com/docs/cloud-messaging/ios/client?hl=jp#access_the_registration_token

これまで受信できていた場合はトークン更新の有無を確認

Cloud Messagingの動作確認中、急にテスト通知が届かなくなった場合は、上記タイミングでFCMトークンの更新がかかっていないか確認しましょう。

56
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
47