1.はじめに
目標
このコードラボでは、FCMトピックを使用して、アプリインスタンスのさまざまなサブグループにプッシュメッセージをマルチキャストできるように、マルチプラットフォームアプリをインストルメント化する方法を学習します。
完了すると、FCMインフラストラクチャを活用して、これらのサブグループを管理したり、サブグループを介してプッシュメッセージをマルチキャストしたりできるようになります。
トピックの概要
トピックは、メッセージを使用してアプリインスタンスのサブグループに到達するためのFCMインフラストラクチャでサポートされる方法です。
FCMは、メッセージを送信するだけでなく、これらのトピックへのサブスクリプションを維持するためのAPIを提供します。アプリインスタンスをトピックに関連付けたり、関連付けを解除したりする行為は、それぞれサブスクライブとアンサブスクライブと呼ばれます
トピックは、公開されているコンテンツに使用する必要があります。たとえば、天気の更新に関するメッセージ。ユーザーに機密性の高いメッセージを送信する場合は、FirebaseAdminSDKを使用して複数のデバイスにメッセージをマルチキャストします。
トピックベースのマルチキャストは、スループットが最適化されています。
あなたが学ぶこと
- モバイルアプリからトピックにユーザーをサブスクライブ(およびサブスクライブ解除)する方法。
- トピックを使用してマルチキャストプッシュメッセージを送信する方法。
- トピック条件を使用してトピックの組み合わせにメッセージを送信する方法。
- サーバー側でトピックサブスクリプションを管理し、一括サブスクリプションとサブスクリプション解除を行う方法。
構築するもの
- トピックをサブスクライブ/サブスクライブ解除し、トピックに送信されたときにメッセージを受信するAndroidアプリ。
- FCMAPIを介してトピックメッセージを送信するために使用されるFirebaseAdminSDKを使用したサーバー側の統合。
必要なもの
- Chromeなどの選択したブラウザ。
- Javaアプリケーションを開発するためのIntelliJIDEAIDE 。
- インストール中は、Gradleのサポートをオプトインしてください。
- Androidアプリケーションを開発するためのAndroidStudioIDE。
- Androidアプリケーションを実行するためのデバイス。のどちらか:
- Androidエミュレーター。 ( Android Studioでのセットアップが必要です)。
- コンピューターに接続され、開発者モードに設定されている物理的なAndroidデバイス。
- Firebaseプロジェクトを作成および管理するためのGoogleアカウント。
2.セットアップする
コードを取得する
コマンドラインからGitHubリポジトリのクローンを作成します。
git clone https://github.com/firebase/quickstart-android.git fcm-codelab
サンプルコードはfcm-codelab
ディレクトリに複製されます。
cd fcm-codelab
このcodelabのスターターアプリは、 fcm-topics-codelab
ブランチのmessaging
ディレクトリにあります。スターターコードに到達するには、次の手順を実行します。 StockNewsApp
とStockNewsServer
の2つのディレクトリが含まれています。前者にはスターターAndroidアプリが含まれ、後者にはスターターサーバー側のコードが含まれています。
git checkout fcm-topics-codelab cd messaging/fcm-topics-codelab/starter
このコードラボの完成したバージョンは、 messaging/fcm-topics-codelab/completed
ディレクトリに配置されます。
Firebaseプロジェクトを作成する
- Firebaseコンソールで、[プロジェクトの追加]をクリックし、FirebaseプロジェクトにStockNewsという名前を付けて、[続行]をクリックします。注:FirebaseプロジェクトのプロジェクトIDを覚えておいてください(または[編集]アイコンをクリックして、希望のプロジェクトIDを設定してください)。
- GoogleAnalyticsの有効化をスキップできます。このコードラボの目的のために、あなたはそれを必要としません。 [続行]をクリックします。
- [プロジェクトの作成]をクリックします。
おめでとう! Firebaseプロジェクトを作成しました。これで、プロジェクト名をクリックしてコンソールに入ることができます。
3.プラットフォーム固有のFirebaseアプリの構成
Firebaseサポートを有効にするために必要なコード変更のほとんどは、作業中のプロジェクトにすでにチェックインされています。ただし、モバイルプラットフォームのサポートを追加するには、次のことを行う必要があります。
- 目的のプラットフォームをFirebaseプロジェクトに登録します
- プラットフォーム固有の構成ファイルをダウンロードして、コードに追加します。
このコードラボの目的のために、AndroidFirebaseアプリを追加します。
Androidを構成する
- Firebase Consoleで、[設定]歯車の左側のナビゲーションバーの上部にある[プロジェクト設定]を選択し、[一般]ページの[アプリ]の下にある[ Android ]アイコンをクリックします。
次のダイアログが表示されます。
- 提供する重要な値は、 Androidパッケージ名です。
com.ticker.stocknews
に設定します。- ここで提供されるパッケージ名は、スターターStockNewsAppコードの
AndroidManifest.xml
で提供されるものと同じである必要があります。それを見つけたり変更したりする場合は、次の手順に従ってください。- StockNewsAppディレクトリで、ファイル
app/src/main/AndroidManifest.xml
を開きます。 -
manifest
要素で、package
属性の文字列値を見つけます。この値はAndroidパッケージ名です。
- StockNewsAppディレクトリで、ファイル
- ここで提供されるパッケージ名は、スターターStockNewsAppコードの
- [Firebase]ダイアログで、コピーしたパッケージ名をAndroidパッケージ名フィールドに貼り付けます。
- このアプリはリリースされないため、このコードラボのデバッグ署名証明書SHA-1は必要ありません。これは空白のままにします。
- [アプリの登録]をクリックします。
- Firebase Consoleで続行し、指示に従って構成ファイル
google-services.json
をダウンロードします。 - 他のすべてはスターターアプリコードですでに構成されているため、残りのセットアップ手順はスキップできます。アプリはFirebaseConsoleのメインページに表示されます。
-
google-services.json
ファイル(ダウンロードしたばかり)をmessaging/fcm-topics-codelab/starter/StockNewsApp/app
ディレクトリにコピーします。
4.アプリをビルドして実行します
これで、実際にアプリの作業を開始する準備が整いました。まず、アプリをビルドして実行します。
スターターアプリをインポートする
Android Studioを起動し、 messaging/fcm-topics-codelab/starter/StockNewsApp
をスターターコードディレクトリからインポートします。
プロジェクトが読み込まれた後、Gitがすべてのローカル変更を追跡していないというアラートが表示される場合もあります。右上の[無視]または[ X ]をクリックできます。 (変更をGitリポジトリにプッシュバックすることはありません。)
Androidビューを表示している場合は、プロジェクトウィンドウの左上隅に次の画像のようなものが表示されます。 (プロジェクトビューを表示している場合、同じものを表示するにはプロジェクトを展開する必要があります)
Android Studioは、プロジェクトをバックグラウンドで初めてコンパイルするのに数秒かかる場合があることに注意してください。この間、AndroidStudioの下部にあるステータスバーにスピナーが表示されます。
コードを変更する前に、これが完了するまで待つことをお勧めします。これにより、AndroidStudioは必要なすべてのコンポーネントを取り込むことができます。
さらに、「言語の変更を有効にするためにリロードしますか?」というプロンプトが表示された場合。または同様のもので、「はい」を選択します。
エミュレーターのセットアップ
Androidエミュレーターのセットアップについてサポートが必要な場合は、アプリの実行に関する記事を参照してください。
Androidアプリのスターターコードを理解する
- スターターコードは、最小限の機能とUIを備えた軽量のAndroidアプリです。
- firebase-messagingSDKへの依存関係はすでに
app/build.gradle
ファイルに追加されています。
-
AndroidManifest.xml
には、MESSAGING_EVENT
コールバックハンドラーがすでに追加されています。- このハンドラー
StockNewsMessagingService.java
は、さまざまなFirebaseCloudMessaging関連の機能を提供するFirebaseMessagingService
クラスを拡張します。詳細については、 FirebaseMessagingServiceのドキュメントを参照してください。
-
onNewToken
関数は、FCM登録トークンが作成または更新されたときに呼び出されます。詳細については、モニタートークンの生成を参照してください。 -
onMessageReceived
関数は、メッセージが受信され、アプリがフォアグラウンドにあるときに呼び出されます。現在、受信したメッセージをログに記録するだけです。- バックグラウンドメッセージとフォアグラウンドメッセージの配信と処理の違いについて詳しくは、Androidアプリでメッセージを受信するをご覧ください。
- このハンドラー
- また、
AndroidManifest.xml
では、StockNewsApplication
という名前のAndroidApplication
クラスも提供されています。- このクラスは、アプリの起動時にインスタンス化される最初のクラスになります。
-
StockNewsApplication
クラスのonCreate
関数に、FCM登録トークン作成呼び出しが追加されています。有効なFCM登録トークンを生成してログに記録します。
-
MainActivity.java
は、株式カテゴリの選択肢を表示するRecyclerView
を追加します。 -
SubscriptionAdapter.java
は、株式カテゴリ選択画面を描画するRecyclerView.Adapter
を実装します。- 各株式カテゴリには、名前とその横にあるサブスクリプショントグルがあります。
- トグルを変更すると、FCMトピックのサブスクリプション/サブスクリプション解除の呼び出しが行われます。
- これらの呼び出しは、次のセクションで実装します。
-
model/StockCategories.java
クラスには、すべての株式カテゴリとそれに関連するトピック名のリストが含まれています。
スターターアプリを実行する
- Androidデバイスをコンピューターに接続するか、エミュレーターを起動します。
- 上部のツールバーで、ターゲットのAndroidデバイスまたはエミュレーターを選択し、実行ボタンを押します。
- アプリのUIは次のようになります。
- アプリはFCM登録トークンを作成してログに記録します。ただし、アプリUIでは何も変更されません。
- 次の手順で使用するFCM登録トークンをコピーして保存します。
5.テストメッセージを送信します
これで、前の手順で設定したアプリインスタンスにテストメッセージを送信する準備が整いました。
スターターサーバーコードをインポートする
IntelliJ IDEAを起動し、 messaging/fcm-topics-codelab/starter/StockNewsServer
プロジェクトを開きます。
左側のナビゲーションバーのプロジェクトビューは、次のようになります。
IntellIj IDEAがプロジェクトをビルドするのに、必要な依存関係のプルを含めて、数分かかる場合があることに注意してください。
サーバースターターコードを理解する
- サーバースターターコードは、GradleベースのJavaプロジェクトです。
-
build.gradle
ファイルには、 firebase-adminSDKへの依存関係がすでに追加されています。このSDKは、さまざまなFCMメッセージ送信機能へのアクセスを提供します。
- 最後に、2つのクラスがあります。
-
FcmSender.java
:このクラスには、次の注意事項が含まれています。-
initFirebaseSDK
:firebase-adminSDKを初期化します。 -
sendMessageToFcmRegistrationToken
:FCM登録トークンにメッセージを送信します。 -
sendMessageToFcmTopic
:FCMトピックにメッセージを送信します。 -
sendMessageToFcmTopicCondition
:FCMトピック条件にメッセージを送信します。
-
-
FcmSubscriptionManager.java
:このクラスには、サーバー側からトピックサブスクリプションを管理できるメソッドが含まれています。-
initFirebaseSDK
:firebase-adminSDKを初期化します。 -
subscribeFcmRegistrationTokensToTopic
:FCM登録トークンをFCMトピックにサブスクライブします。 -
unsubscribeFcmRegistrationTokensFromTopic
:FCMトピックからFCM登録トークンのサブスクライブを解除します。
-
-
サーバーコードの設定
- まず、firebase-adminSDKがFCMAPIの呼び出しを承認できるようにするFirebaseサービスアカウントを設定する必要があります。
- Firebase Consoleに移動し、左側のナビゲーションバーの[プロジェクトの概要]の横にある歯車のアイコンをクリックして、[プロジェクトの設定]を選択します。
- 設定ページで、[サービスアカウント]を選択し、[サービスアカウントの作成]をクリックします。
- 次に、[新しい秘密鍵の生成]ボタンをクリックすると、鍵ファイルの自動ダウンロードが開始されます。
- キーファイルの名前を
service-account.json
account.jsonに変更し、messaging/fcm-topics-codelab/starter/StockNewsServer/src/main/resources
フォルダーにコピーします。 -
FcmSender.java
とFcmSubscriptionManager.java
はどちらも、次のコードを使用してクラスパスからservice-account.json
account.jsonファイルをロードします。
- Firebase Consoleに移動し、左側のナビゲーションバーの[プロジェクトの概要]の横にある歯車のアイコンをクリックして、[プロジェクトの設定]を選択します。
- この時点で、サーバーコードの準備ができています。トップメニューバーから[ビルド]->[プロジェクトのビルド]を実行します。
テストメッセージの送信
FcmSender.java
で、sendMessageToFcmRegistrationToken
関数を見つけ、 「スターターアプリの実行」セクションからコピーしたFCM登録トークンをregistrationToken
フィールドに挿入します。-
main
関数で、sendMessageToFcmRegistrationToken
関数のコメントを解除し、[実行]をクリックしてコードを実行します。- FCM登録トークンが
message
オブジェクトのToken
フィールドにどのように設定されているかを確認します。 - さらに、
FirebaseMessaging
インターフェースのsend
をどのように使用したかに注目してください。
- FCM登録トークンが
- これにより、前の手順で設定したアプリインスタンスにメッセージが送信されます。
- アプリインスタンスがフォアグラウンドにある場合、メッセージの内容がログに記録されているのがわかります。
- また、Appインスタンスがバックグラウンドにある場合、メッセージが通知トレイに表示されるのを確認できます。
すばらしいことに、FirebaseAdminSDKを使用してアプリインスタンスにメッセージを送信しました。サーバーでFirebaseAdminSDKを使用する方法の詳細をご覧ください。
6.トピックのサブスクリプション/サブスクリプション解除を実装する
このステップでは、Androidアプリの[ストックカテゴリ]トグルで、トピックのサブスクリプションとサブスクリプション解除のアクションを実装します。
アプリユーザーが特定の株式カテゴリのスイッチを切り替えると、トピックのサブスクリプションまたはサブスクリプション解除の呼び出しが行われます。
レビューコード
- Androidアプリコードの
SubscriptionAdapter.java
クラスに移動し、RecyclerViewViewHolder
クラスを見つけます。
- クラスコンストラクターは、
setOnCheckedChangeListener
を使用して、サブスクリプショントグルのリスナーを設定します。 - スイッチの切り替えに応じて、
subscribeToStockCategory
メソッドとunsubscribeFromStockCategory
メソッドをそれぞれ呼び出すことにより、サブスクライブアクションとサブスクライブ解除アクションが実行されます。 -
setData
メソッドは、RecyclerView AdapterのonBindViewHolder
によって呼び出され、ViewHolderを適切なストックカテゴリにバインドします。
トピックサブスクリプションを実装する
subscribeToStockCategory
メソッドでは、FirebaseMessaging
オブジェクトのsubscribeToTopic
への呼び出しを実装します。コードは次のようになります。
void subscribeToStockCategory() { // Making call to FCM for subscribing to the topic for stockCategory FirebaseMessaging.getInstance().subscribeToTopic(stockCategory.getTopicName()).addOnSuccessListener( unused -> { // Subscribing action successful Log.i(TAG, "Subscribed to topic: " + stockCategory.getTopicName()); Toast.makeText(itemView.getContext(), "Subscribed to " + stockCategory.getCategoryName(), Toast.LENGTH_SHORT).show(); }); }
トピックのサブスクリプション解除を実装する
- 同様に、else条件では、
unsubscribeFromTopic
の呼び出しを実装します。次の線に沿った何か:
void unsubscribeFromStockCategory() { // Making call to FCM for unsubscribing from the topic for stockCategory FirebaseMessaging.getInstance().unsubscribeFromTopic(stockCategory.getTopicName()) .addOnSuccessListener(unused -> { // Unsubscribing action successful Log.i(TAG, "Unsubscribed from topic: " + stockCategory.getTopicName()); Toast.makeText(itemView.getContext(), "Unsubscribed from " + stockCategory.getCategoryName(), Toast.LENGTH_SHORT).show(); }); }
やってみよう
- アプリを実行し、株式カテゴリオプションを切り替えて、購読および購読解除アクションを実行します。次のようになります。
申し込む | 登録を解除する |
7.最初のトピックメッセージを送信する
このステップでは、FCMトピックメッセージを送信するためのサーバー側コードを実装します。
トピックメッセージを送信するためのサーバー側統合を実装する
- サーバーコードで、
FcmSender.java
にジャンプし、sendMessageToFcmTopic
という名前のメソッドを見つけます。
- 最初の行に、メッセージの送信先となるFCMトピックを入力します。
- これは、
/topics/<Topic Name>
の形式の文字列です。たとえば、/topics/Technology
。
- これは、
- 次の行で、新しい
message
オブジェクトを作成します(sendMessageToFcmRegistrationToken
関数で定義されたものと同様)。- 違いは、
message
オブジェクトのToken
フィールドを設定する代わりに、Topic
フィールドを設定することです。
- 違いは、
Message message = Message.builder() .putData("FOOTECH", "$1000") .setNotification( Notification.builder() .setTitle("Investor confidence in Tech Stocks growing") .setBody("Foo Tech leading the way in stock growth for Tech sector.") .build()) .setTopic(topicName) .build();
- 次に、
FirebaseMessaging
インスタンスへの呼び出しを追加して、メッセージを送信します(sendMessageToFcmRegistrationToken
関数で行われたsend呼び出しと同じです)。
FirebaseMessaging.getInstance().send(message);
- 最後に、
main
関数を更新し、sendMessageToFcmTopic
関数のみの呼び出しを有効にします。
メッセージを送信し、領収書を検証します
- トピックメッセージを送信する前に、まずアプリインスタンスが送信先のトピックにサブスクライブされていることを確認してください。
- これは、対応するトグルを切り替えるだけで実行できます。例えば:
- これで、
FcmSender.java
のmain
関数を実行して、トピックメッセージを送信できます。 - 以前と同様に、アプリインスタンスでメッセージの受信を確認できるはずです。
- フォアグラウンドのアプリインスタンス
- バックグラウンドでのアプリインスタンス
- ボーナス:送信したトピックの購読を解除して、メッセージを再送信してみてください。メッセージがアプリインスタンスに配信されていないことがわかります。
8.最初のトピック条件メッセージの送信
トピック条件機能を使用すると、トピックの組み合わせにメッセージを送信して、より表現力豊かなオーディエンス定義を提供できます。
たとえば、StockNewsアプリでは、テクノロジーまたは自動車のトピックのいずれかにサブスクライブしているアプリインスタンスのグループにメッセージを送信する可能性を検討してください。このようなケースは、たとえば、Waymoが関与する注目すべきイベントがある場合に発生する可能性があります。
トピックでは、次の演算子を使用して、ブール式の形式で組み合わせを表現できます。
- &&:論理積。たとえば
'Technology' in topics && 'Automotive' in topics
-テクノロジートピックと自動車トピックの両方にサブスクライブされているアプリインスタンスのみを対象とします。 - || :論理OR。たとえば
'Technology' in topics || 'Automotive' in topics
-テクノロジーまたは自動車のトピックのいずれかにサブスクライブされているアプリインスタンスをターゲットにします。 - ():グループ化のための括弧。たとえば
'Technology' in topics && ('Automotive' in topics || 'Energy' in topics)
-テクノロジーと、自動車またはエネルギーのトピックのいずれかにサブスクライブされているアプリインスタンスのみを対象とします。
この機能を使用するための送信リクエストを作成する方法の詳細をご覧ください。
トピック条件メッセージを送信するためのサーバー側統合を実装する
- サーバーコードに戻り、
FcmSender.java
にジャンプして、sendMessageToFcmTopicCondition
という名前のメソッドを見つけます。
- 最初の行の
topicCondition
変数には、メッセージの送信先のトピック条件を指定します。'Technology' in topics && 'Automotive' in topics
設定できます。 - 次の行で、新しい
message
オブジェクトを作成します(sendMessageToFcmTopic
関数で定義されたものと同様)。- 違いは、オブジェクトの
Topic
フィールドを設定する代わりに、Condition
フィールドを設定することです。
- 違いは、オブジェクトの
Message message = Message.builder() .putData("FOOCAR", "$500") .setNotification( Notification.builder() .setTitle("Foo Car shows strong Q2 results") .setBody("Foo Car crosses 1B miles. Stocks rally.") .build()) .setCondition(topicCondition) .build();
- 次に、
FirebaseMessaging
インスタンスへの呼び出しを追加して、メッセージを送信します(sendMessageToFcmTopic
関数で行われたsend呼び出しと同じです)。
FirebaseMessaging.getInstance().send(message);
- 最後に、
main
関数を更新し、sendMessageToFcmTopicCondition
関数のみの呼び出しを有効にします。
メッセージを送信し、領収書を検証します
- トピックメッセージを送信する前に、まず、アプリインスタンスをテクノロジートピックと自動車トピックの両方にサブスクライブして、アプリインスタンスが指定されたトピック条件を満たすことを確認します。
- これで、
FcmSender.java
のmain
関数を実行して、トピックメッセージを送信できます。 - 以前と同様に、アプリインスタンスでメッセージの受信を確認できるはずです。
- フォアグラウンドのアプリインスタンス
- バックグラウンドでのアプリインスタンス
- ボーナス:テクノロジートピックの購読を解除し、トピック条件メッセージを再送信できるようになりました。メッセージがアプリインスタンスによって受信されないことに注意する必要があります。
9.要約
これまでに学んだことを簡単に要約してみましょう。
- アプリインスタンスからトピックのサブスクリプション/サブスクリプション解除を開始する方法。
- トピックにメッセージを送信し、サブスクライブしたアプリインスタンスの受信を確認します。
- トピックConditionにメッセージを送信し、条件を満たすアプリインスタンスで受信を確認します。
次のセクションでは、クライアント側からの呼び出しをインスタンス化することなく、アプリインスタンスをトピックにサブスクライブ/サブスクライブ解除する方法について学習します。
10.サーバー側からトピックサブスクリプションを管理する
これまで、このコードラボでは、すべてのトピックのサブスクリプションとサブスクリプション解除の呼び出しがアプリインスタンスから開始されていました。
ただし、一部のユースケースでは、サーバー側からトピックサブスクリプションを管理したい場合があります。たとえば、アプリのロールアウトを待たずに、既存のユーザーベースのサブグループを新しいトピックにサブスクライブしたい場合があります。
このセクションでは、Firebase Admin SDKを使用して、サーバー側から呼び出しを行い、FCM登録トークンのバッチをトピックにサブスクライブおよびサブスクライブ解除する方法を学習します。
FCMトピックへのFCM登録トークンのサーバー側サブスクリプションを実装する
- サーバーコードで、
FcmSubscriptionManager.java
クラスにジャンプします。subscribeFcmRegistrationTokensToTopic
という名前のメソッドを見つけます。ここでsubscribeToTopic
の呼び出しを実装します。
- アプリインスタンスをEnergyトピックにサブスクライブしましょう。これを行うには、最初に次の2つのフィールドのデータを提供します。
- RegistrationTokens:トピックサブスクリプションを作成するFCM
registrationTokens
トークンを表す文字列のコンマ区切りのリスト。 -
topicName
:エネルギートピックのトピック名、つまり/topics/Energy
。
- RegistrationTokens:トピックサブスクリプションを作成するFCM
- 次の数行で、次の行に沿って呼び出しを実装します。
TopicManagementResponse response = FirebaseMessaging.getInstance().subscribeToTopic( registrationTokens, topicName);
-
TopicManagementResponse
を調べて、いくつかの高レベルの結果統計を確認できます。getSuccessCount
を使用して正常に作成されたトピックサブスクリプションの数を出力するなど。
System.out.printf("Num tokens successfully subscribed %d", response.getSuccessCount());
- 最後に、
main
関数で、subscribeFcmRegistrationTokensToTopic
関数のみへの呼び出しを有効にします。
サブスクリプションを作成し、トピックメッセージを送信します
- この時点で、トピックサブスクリプションを作成し、それにメッセージを送信する準備が整いました。
-
FcmSubscriptionManager.java
クラスのmain
関数を実行します。これにより、トピックサブスクリプションが作成されます。 - 次に、メッセージを送信するためのコードを設定します。以前と同様に、
-
FcmSender.java
で、sendMessageToFcmTopic
関数を見つけます。 -
topicName
をEnergyトピック、つまり/topics/Energy
に設定します。 -
Message
オブジェクトを作成し、setTopic
を使用してトピックをターゲットにします。 - 最後に、
sendMessageToFcmTopic
関数のみを有効にするようにmain
メソッドを更新します。
-
-
FcmSender.java
のmain
関数を実行します。これにより、メッセージがアプリインスタンスに送信され、次のようにアプリで確認できます。- フォアグラウンドのアプリインスタンス
- バックグラウンドでのアプリインスタンス
FCMトピックへのFCM登録トークンのサーバー側のサブスクリプション解除を実装する
- サーバー側のトピックのサブスクリプション解除には、この
unsubscribeFromTopic
を使用します。FcmSubscriptionManager.java
クラスのunsubscribeFcmRegistrationTokensFromTopic
関数に関連するコードを追加します。
- サーバー側のサブスクリプション解除コードを実装し、トピックメッセージを送信してその効果を検証することは、演習として残されています。
11.おめでとうございます
FCMトピックを使用して、アプリインスタンスのサブグループにマルチキャストメッセージを送信できました。おめでとうございます。これにより、関連するコンテンツをタイムリーにユーザーに届ける能力が簡素化されます。
次は何ですか?
コードラボが完成したので、次のガイドを使用して他のプラットフォームのトピックを試すことを検討してください。