LoginSignup
11
11

More than 3 years have passed since last update.

【Firebase】FCMの通知メッセージとデータメッセージの違い

Last updated at Posted at 2019-09-03

背景

業務でFCMの話題になると、毎回仕様を忘れてしまって調べ直しになるのでまとめました。
(公式ドキュメントを熟読して整理した内容です。実機での確認ができていないので、実際の動作と違っている場合はご指摘いただけると幸いです。)

送信するデータについて

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    },
    "data" : {
      "Nick" : "Mario",
      "Room" : "PortugalVSDenmark"
    }
  }
}
  • notificationはコンソールから送信する場合は必須。
  • dataは任意で好きな値を入れられる。

notificationのtitleとbodyはコンソールで言うとこの2つのフォームです。
image.png

dataはコンソールで言うと下記のカスタムデータのフォームです。
image.png

通知の種類について

通知メッセージデータメッセージの2種類がある。

  • JSONにnotificationが含まれる場合は通知メッセージとして扱われ、プッシュ通知はSDK側で自動表示される。
  • JSONにnotificationが含まれない場合はデータメッセージとして扱われ、アプリがプッシュ通知を自前で作って表示させる必要がある。

※ここで言うプッシュ通知とは、端末の通知領域に表示されるViewのことです。

通知メッセージの表示制御とデータ処理について

通知メッセージはアプリがフォアグラウンド/バックグラウンドどちらにいるかによって、表示制御の仕方とデータ処理のタイミングが変わる。

  • バックグラウンドの場合は、プッシュ通知はSDK側で自動表示される。dataに入れた任意の値はプッシュ通知をタップした後でアプリが自前で処理可能。
  • フォアグラウンドの場合は、アプリがプッシュ通知を自前で作って表示させる。(notificationが含まれていない場合(データメッセージ)と同様。)

参考

11
11
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
11
11