03:45スポンサーリンクややこしすぎな気がします。この記事のタイトルも書いてて意味不明です。以下のような、FCMにJSONをPOSTしてアプリで受ける場合の話です。}'このPOSTするJSONに含まれるデータ構造によって、アプリ側で受信する場合の処理の流れ変わって見通しが悪くなります。きれいにまとめられています。Qiitaアプリがフォアグラウンドにある場合、このServiceのonMessageReceived()が呼び出されることになります。アプリがバックグラウンドにある場合はこのonMessageReceived()は呼ばれることはなく、システム側で自動的にシステムトレイに通知を表示します。“data”ブロックはConsoleからも含めることはできます(詳細オプションのカスタムデータで指定できる)。Consoleでは”notification”ブロックを省略することができません(メッセージ文を入力しないと送信できない)。送信したメッセージに”data”ブロックがあっても、”notification”ブロックが存在する限り、アプリがバックグラウンドにある状態ではFirebaseMessagingServiceのonMessageReceived()は呼ばれません。“data”ブロックの内容を受け取れないわけではありません。通知をクリックして起動したActivityのintentに含まれることになります。“data”ブロックの内容の処理が、フォアグラウンド時に受け取ったときはFirebaseMessagingServiceで、バックグラウンドのときにはActivityでとなってしまって煩雑です。実際に試してみると、これら書かれてることすごく良く分かります。結局、この”notification”ブロックの特典としては、アプリがバックグラウンド状態で受信した場合にのみ、アプリ側の実装なしで通知トレイに入る。いうことだけでしょうか、おおまかですが。すべてのメッセージ受信時にonMessageReceived()が呼び出されれば、アプリがフォアグラウンドにあるかバックグラウンドにあるかを気にする必要がなくなります。入れ子にしたらいいんじゃないかと。...}を以下のように入れ子にする。...}すべてサービスで受けることができます。敷居を下げてマーケティングなどに利用を広めようとしてるのかな。Converter」がよい。Json」の登場でサードパーティJSONライブラリは不要となる。注入する今どきの「ネット接続してるかどうか」のコード。