Firebase クラウド メッセージング

Firebase クラウド メッセージング
開発者Firebaseグーグル
プログラミング言語-
アプリケーション通知サービス
状態オンライン[ 1 ]
ライセンスアクセス
Webサイトfirebase.google.com / products /クラウドメッセージング/

Firebase Cloud Messaging ( FCM ) は、以前はGoogle Cloud Messaging (GCM) として知られていましたが、AndroidiOSウェブアプリケーション向けのメッセージと通知のためのクロスプラットフォームクラウドサービスであり、2025年4月時点で無料で使用できます。[ 2 ] Firebase Cloud Messaging を使用すると、サードパーティのアプリケーション開発者は、FCM でホストされているサーバーからプラットフォームのユーザーまたはエンドユーザーに通知またはメッセージを送信できます。

このサービスは、 Googleの子会社であるFirebaseによって提供されています。2014年10月21日、FirebaseはGoogleに非公開の金額で買収されたことを発表しました。[ 3 ] Google Cloud Messagingの公式Webサイトでは、Firebase Cloud Messaging(FCM)がGCMの新しいバージョンであると紹介されています。[ 4 ] Firebaseは、モバイルアプリケーションとWebアプリケーションの開発をサポートするモバイルプラットフォームです。Firebase Cloud Messagingは、Firebaseプラットフォームの一部である多くの製品の1つです。このプラットフォームでは、ユーザーはWebアプリケーションとモバイルアプリケーションの両方でさまざまなFirebase機能を統合および組み合わせることができます。

歴史

Firebase Cloud Messaging(FCM)は、バックエンド開発を自動化するクラウドサービスモデル、またはBackend-as-a-service(BaaS)であるFirebaseプラットフォームの一部です。2014年にFirebase社がGoogleに買収された後、一部のFirebaseプラットフォーム製品またはテクノロジーはGoogleの既存のサービスと統合されました。Googleのモバイル通知サービスであるGoogle Cloud Messaging(GCM)は、2016年にFCMに置き換えられました。2018年4月10日、GCMはGoogleによって削除され、2019年5月29日、GCMサーバーとクライアントAPIは非推奨となりました。[ 5 ] FCMはGCMの代替となりました。ただし、FCMは既存のGoogleソフトウェア開発キット(SDK)と互換性があります。[ 6 ]

Firebase Cloud Messagingは、ユーザーが無料でメッセージを配信できるクロスプラットフォームのメッセージングサービスです。FCMは、AndroidやiOSなど、さまざまなプラットフォームと互換性があります。[ 7 ] Googleは、2016年10月17日にモバイルウェブアプリケーションを含むウェブアプリケーションのサポートを開始しました。[ 8 ] FCMでは、サードパーティのアプリケーション開発者が、アプリケーションプログラミングインターフェース(API)を介してエンドユーザーにプッシュ通知やメッセージを送信できます。[ 9 ]ユーザーがプッシュ通知の受信に同意すると、同期用のリアルタイム情報やデータを受信できるようになります。

発達

FCMはGCMのコアインフラストラクチャを継承していますが、クライアント側の開発を簡素化しています。GCMとFCMは、暗号化、プッシュ通知とメッセージング、ネイティブAndroidおよびiOS SDKサポートを提供します。どちらも、クライアントアプリケーションと信頼できる環境の間にサードパーティエンティティを必要とするため、モバイル端末とアプリケーションサーバー間の通信パスに遅延が生じる可能性があります。[ 9 ] FCMは、GCMプロトコルと同一のサーバープロトコルである HTTPとXMPPをサポートしています。

開発者は、クライアントアプリケーションで個別の登録やサブスクリプションの再試行ロジックを作成する必要はありません。[ 5 ] FCMとGCMは同じ命令でメッセージを処理しますが、GCM接続サーバーの代わりに、メッセージはFCMサーバーを介して渡されます。FCMソフトウェア開発キット(SDK)は、個別の登録やサブスクリプションの再試行ロジックを作成する必要がないため、クライアント開発プロセスを短縮できます。FCM SDKは、Firebase Analyticsの分析情報に基づいて、開発者がWebコンソールでサーバーレスのFirebase Notificationsを使用できるようにする新しい通知ソリューションを提供します。FCMは、無制限のアップストリームおよびダウンストリームメッセージを送信できます。[ 7 ]

主な機能

Firebase Cloud Messagingには3つの主要な機能があります。1つ目は、FCMによってユーザーが通知メッセージやデータメッセージを受信でき、アプリケーションコードで解読できる機能です。2つ目はメッセージのターゲティング機能です。メッセージは、FCMプラットフォームから個々のデバイス、指定されたデバイスグループ、または特定のトピックドメインにサブスクライブされているデバイスなど、さまざまな方法でクライアントアプリケーションに送信できます。3つ目の重要な機能は、クライアントアプリケーションからサーバーへの接続チャネルです。FCMは、選択されたデバイスまたはクライアントアプリからFCMチャネルを介してさまざまな種類のメッセージを送信することを可能にします。[ 10 ]

技術的な詳細

Firebase Cloud Messagingは、特定のFirebase対応アプリがインストールされているデバイスに通知とメッセージを送信します。アプリケーションにFCMのサポートを追加するには、 Android Studioプロジェクトへのサポートの追加、登録トークンの取得、メッセージ通知を識別するためのハンドラーの実装など、複数の手順が必要です。 [ 11 ]メッセージ通知は、Firebaseコンソールからユーザーセグメンテーションオプションを選択して送信できます。

FCMアーキテクチャ

FCM アーキテクチャには、FCM 接続サーバー、HTTP または XMPP とクラウド機能に基づくアプリケーション サーバーを備えた信頼できる環境、およびクライアント アプリケーションの 3 つのコンポーネントが含まれます。メッセージの送受信には、メッセージを構築、送信、および送信するための安全な環境またはサーバーと、メッセージを受信するための iOS、Android、または Web クライアント アプリケーションが必要です。[ 12 ] 開発者が FCM を使用して送信できるメッセージには、通知メッセージとデータ メッセージの 2 種類があります。通知メッセージは、FCM によってデバイスに表示されるメッセージであり、FCM SDK によって自動的に管理されます。データ メッセージは、クライアント アプリケーションによって処理されます。[ 13 ]そのため、開発者がクライアント アプリケーションの通知表示を FCM で処理する必要がある場合に通知メッセージが使用されます。開発者がクライアント アプリケーションでメッセージを処理する必要がある場合にデータ メッセージが使用されます。

Firebase クラウド メッセージング アーキテクチャ

FCMは、単一のデバイス、デバイスグループ、またはトピックを購読しているデバイスの3つの方法で、アプリケーションにターゲットメッセージを配信できます。開発者は「通知コンポーザー」上で、特定のユーザーグループにターゲットを絞ったメッセージを作成し、送信できます。[ 11 ] FCMで送信されたメッセージはGoogleアナリティクスと統合され、ユーザーのコンバージョンとエンゲージメントを追跡します。[ 14 ]

実装

実装プロセスには2つの重要な要素があります。まず、FCMやその他のアプリケーションサーバーがメッセージトランザクションを円滑に進めるために、メッセージを送受信するための安全な環境が必要です。次に、選択したプラットフォームサービスと互換性のある、iOS、Android、Web(JavaScript)など、様々な種類のクライアントアプリケーションが必要です。

FCMの実装は、選択したプラットフォームに規定された手順に従い、FCM SDKをセットアップすることから始まります。セットアップ後、クライアントアプリケーションを開発する必要があります。クライアントアプリケーションには、メッセージ処理、トピックサブスクリプションロジック、その他の必要な機能を追加します。このステップでは、Notifications Composerからテストメッセージを送信することもできます。次に、送信ロジックを構築するためにアプリケーションサーバーを開発します。ベースサーバー環境はコードなしで構築されます。[ 5 ]

アーキテクチャフロー

まず、デバイスを登録し、FCMからのメッセージ受信を有効にするための設定が必要です。クライアントアプリケーションインスタンスが登録され、登録トークン(FCMトークン)が割り当てられます。このトークンはFCM接続サーバーによって発行され、アプリケーションインスタンス(アプリインスタンス)に一意の識別子を提供します。これにより、アプリインスタンスはダウンストリームメッセージの送受信が可能になります。ダウンストリームメッセージングとは、アプリケーションサーバーからクライアントアプリケーションへのプッシュ通知の送信を指します。このプロセスは4つのステップで構成されます。まず、Notifications Composerまたは他のセキュアな環境でメッセージが作成された後、メッセージのリクエストがFCMバックエンドに送信されます。次に、FCMバックエンドはメッセージリクエストを受信して​​受け入れ、指定されたトピックごとにメッセージを準備し、メッセージIDなどのメッセージメタデータを作成して、プラットフォーム固有のトランスポート層に送信します。最後に、メッセージはプラットフォーム固有のトランスポート層を介してオンラインデバイスに送信されます。プラットフォームレベルのトランスポート層は、特定のデバイスへのメッセージのルーティング、メッセージの配信処理、およびプラットフォームへの特定の構成の適用を担当します。 4番目に、クライアントアプリケーションはデバイス経由で通知またはメッセージを受信します。[ 15 ]

追加機能とツール

分析

Firebaseは、エンドユーザーの「広告クリック」と「アプリの使用状況」に関する洞察を得るための、無料かつ無制限の分析ツールを提供しています。Firebase Analyticsは、他のFirebase機能と組み合わせることで、クリックスルー率からアプリのクラッシュまで、幅広い機能を調査・活用できます。[ 16 ]

Firebase リモート設定

これはクラウド上に保存されるシンプルなキーバリューストアであり、ユーザーはアプリケーションが読み取れる変更を実装できます。Firebase Remote Configには、基本機能に加えて、カスタムオーディエンスの作成やA/Bテストの実行を支援するオーディエンスビルダーも含まれています。[ 16 ]

クロスプラットフォームサポート

iOS、Android、JavaScript、C++用の単一のSDKにパッケージ化されたAPIとFCMが提供するクロスプラットフォームサポートを組み合わせることで、開発者はインフラストラクチャを変更することなく、異なるプラットフォームに拡張することができます。[ 16 ]

Webプッシュサポート

開発者はIETF標準のWeb Push APIを実装し、Webブラウザをターゲットにすることができます。Chromeでは、Android端末上のChromeやMac、Windows、Linux上のChromeページにメッセージを送信できます。Web Pushサポートの追加機能には、トピックメッセージングとトピックコンビネーションへのメッセージ送信機能が含まれます。[ 16 ]

トピックメッセージング

開発者は単一のメッセージを複数のデバイスに送信できます。これは、スポーツイベント、アーティスト、音楽ジャンルなど、共通の関心を持つトピックを持つユーザーに通知する方法です。開発者はFCMにメッセージをパブリッシュする必要があります。このメッセージは、選択したトピックを購読しているデバイスに自動的に配信されます。アプリケーションでは、単一トピックまたは複数のトピックの購読者数に制限はありません。[ 16 ]

トピックの組み合わせメッセージ

ユーザーが異なるトピックを購読している場合、同じメッセージが複数のトピックにまたがって公開され、ユーザーが重複したメッセージを受信するのを防ぐため、開発者は更新されたAPIを使用できます。開発者は、FCMが条件を満たすユーザーにのみメッセージを配信するように、特定の条件を設定できます。[ 16 ]

メッセージ配信レポート

メッセージ配信レポート(MDR)は、FCMのレポートツールによって生成され、開発者はメッセージ配信に関する分析情報を得ることができます。MDRでは、開発者は異なるFCM SDK(Android、iOS)へのメッセージのデータを表示することで、送信されたメッセージが特定のユーザーにどの程度到達したかを評価できます。[ 17 ]

通知ファネル分析

FCMプラットフォームには、通知ファネル分析(NFA)が組み込まれています。このツールを使用することで、開発者は特定の通知への反応に関するデータからユーザーの行動や傾向を把握できます。分析可能な通知データの種類は、「送信された通知」、「開封された通知」、そしてユニークユーザー数です。NFAから分析レポートを取得できます。開発者は通知ファネルをカスタマイズして構築することもできます。[ 17 ]

主な懸念事項

セキュリティ上の懸念

FCMは、モバイルアプリケーションの設計と実装プロセスを短縮します。FirebaseコンソールのNotifications Composerからテストメッセージを送信できる機能も利用できるため、テストプロセスも短縮されます。クラウドベースのメッセージングソリューションにはセキュリティとプライバシーのリスクが伴うため、プロジェクトへの導入前にこれらのリスクを軽減・検討する必要があります。クラウドコンピューティングの発展には、オープンなネットワーク構造と共有リソースの柔軟なプーリングが伴うため、クラウドセキュリティ対策の確立がますます重要になっています。[ 18 ]

セキュリティ上の懸念事項として、FCM のAndroid アプリケーション パッケージ(APK) ファイルに保存されているサーバー キーが悪用される可能性があります。これが悪用されると、Firebase プラットフォーム上のすべてのユーザーにプッシュ通知メッセージが配信される可能性があります。GCM は以前、フィッシングや悪意のある広告活動が発生するセキュリティ上の脆弱性を報告しています。

セキュリティ脅威からの保護には複数のステップが必要であり、追加の影響が生じる可能性があります。クラウドメッセージングサービスを無効にすると、即時のトランザクションは停止します。ただし、ブロックされたデバイスにインストールされている、FCMサービスに依存する他のアプリケーションが停止する可能性があります。[ 18 ]考えられる解決策としては、特定の通知チャネルをブロックするか、トピックの購読を解除することが挙げられます。他の解決策としては、FCMサービスプラットフォームを介して送信される悪意のある情報を検出するためのメッセージトラフィック通知システムを設定することが挙げられます。[ 19 ]この解決策を実装するには、追加の手順が必要です。ユーザーは最初に、悪意のあるアプリケーションが使用する可能性のある接続チャネルまたはトピックを特定する必要があります。

プライバシーに関する懸念

クラウドベースのメッセージングは​​、プライバシーに関するリスクや問題も引き起こします。ブラックハットハッカーは、 Firebase Cloud Messagingプラットフォームのセキュリティを侵害し、ユーザーのアプリケーションの登録IDやその他の機密情報を取得する可能性があります。セキュリティ侵害の例としては、ユーザーのソーシャルメディアアカウント上のプライベートメッセージがハッカーのデバイスにプッシュされることなどが挙げられます。プラットフォームのプライバシーを確​​保するために、ユーザーは、クラウドメッセージングサービスが提供する安全ではないオープンな通信チャネルをエンドツーエンドで保護するスキームを構築することができます。FCMは、ユーザーにペイロード暗号化を提供します。[ 18 ]

参考文献

  1. ^ 「Firebaseステータスダッシュボード」 . status.firebase.google.com . 2024年10月1日閲覧
  2. ^ 「Firebaseの料金」 . Google Developers . 2025年4月20日閲覧
  3. ^ Tamplin, James. 「FirebaseがGoogleに加わります!」 Firebase, Inc. 2014年10月21日閲覧
  4. ^ 「Google Cloud Messaging - 公式サイト」 。 2025年4月20日閲覧
  5. ^ a b c Kantamani, S. (2020). Firebase Cloud Messaging. 2020年9月7日閲覧, https://medium.com/developermind/using-firebase-cloud-messaging-for-remote-notifications-in-ios-d35de1dc67b2 2021年1月4日アーカイブ, Wayback Machine
  6. ^ Tondolo, Musa (2018年7月27日). 「Firebaseを理解する:パート1(Firebase Cloud Messaging)」 . Medium . 2020年11月17日閲覧
  7. ^ a b Moroney, L. (2017). Firebase Cloud Messaging. 『Firebase決定版ガイド』(pp. 163-188). Apress, Berkeley, CA.
  8. ^ Novet, J. (2016). Google、ウェブ向けFirebase Cloud Messagingをリリース。2020年10月7日閲覧、https: //venturebeat.com/2016/10/17/google-launches-firebase-cloud-messaging-for-the-web/
  9. ^ a b Albertengo, G., Debele, FG, Hassan, W., & Stramandino, D. (2020). ウェブサービス、Google Cloud Messaging、Firebase Cloud Messaging のパフォーマンスについて. Digital Communications and Networks, 6(1), 31-37.
  10. ^ 「Firebase Cloud Messaging」 . Firebase . 2020年11月16日閲覧
  11. ^ a b Yilmaz, YS, Aydin, BI, & Demirbas, M. (2014年12月). Google Cloud Messaging (GCM): An Evaluation. 2014 IEEE Global Communications Conference (pp. 2807-2812). IEEE.
  12. ^ Mokar, MA, Fageeri, SO, Fattoh, SE (2019年9月). Firebase Cloud Messagingを用いたモバイルアプリケーションの制御. 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp. 1-5). IEEE
  13. ^ 「FCM メッセージについて」 . Firebase . 2020年11月17日閲覧。
  14. ^ 「Firebase向けGoogleアナリティクス」 . Firebase . 2023年5月15日閲覧
  15. ^ 「FCM アーキテクチャの概要」 . Firebase . 2020年11月17日閲覧
  16. ^ a b c d e f Sharma, R. (2020). GCMとFCMとは?(相違点と制限事項). 2020年10月2日閲覧、https://www.izooto.com/blog/everything-that-you-need-to-know-about-firebase-cloud-messaging-platformより
  17. ^ a b「メッセージ配信について」 Firebase . 2020年11月17日閲覧
  18. ^ a b c Esposito, Christian; Palmieri, Francesco; Choo, Kim-Kwang Raymond (2018年3月). 「クラウドメッセージキューイングと通知:課題と機会」 . IEEE Cloud Computing . 5 (2): 11– 16. doi : 10.1109/mcc.2018.022171662 . ISSN 2325-6095 . S2CID 19248242 .  
  19. ^ Li, Na; Du, Yanhui; Chen, Guangxuan (2013年12月). 「クラウドメッセージングプッシュ通知サービスの調査」 . 2013 International Conference on Information Science and Cloud Computing Companion . IEEE. pp.  273– 279. doi : 10.1109/iscc-c.2013.132 . ISBN 978-1-4799-5245-8. S2CID  15771293 .