FCM と FIAM を使用してユーザーにメッセージを送信する

1. 始める前に

この Codelab では、アプリをフォアグラウンドで使用している場合でも、アプリがバックグラウンドで動作している場合でも、ユーザーと交流する機能を追加する方法を学びます。

206c7ecece550bde.png

前提とする環境

なし

ラボの内容

  • Android アプリに Firebase を追加する
  • FCM と FIAM の依存関係を追加する
  • アプリにテスト FCM メッセージを送信する
  • アプリにテスト用の FIAM メッセージを送信する

必要なもの

  • Android Studio 4.1
  • Android デバイスまたはエミュレータ

2. 始める

サンプルコードを取得する

コマンドラインから GitHub リポジトリのクローンを作成します。

スターター アプリをインポートする

Android Studio で codelab-fcm-and-fiam ディレクトリ(android_studio_folder.png)を選択します。前のステップでクローンを作成したディレクトリ([File] > [Open] > .../codelab-fcm-and-fiam)を選択します。

Android Studio で FcmAndFiam プロジェクトが開きます。google-services.json ファイルがないという警告が表示されても問題ありません。これは次のステップで追加します。

3. Firebase コンソール プロジェクトを作成する

プロジェクトに Firebase を追加する

  1. Firebase コンソールに移動します。
  2. [プロジェクトを追加] を選択します。
  3. プロジェクト名を選択または入力します。
  4. Firebase コンソールで残りの設定手順を実施した後、[プロジェクトを作成](既存の Google プロジェクトを使用する場合は [Firebase を追加])をクリックします。
  5. 新しいプロジェクトの概要画面で、Android アイコンをクリックして設定ワークフローを起動します。
  6. Codelab のパッケージ名を入力します。com.google.firebase.codelab.fcmandfiam

アプリに google-services.json ファイルを追加する

パッケージ名を追加したら、[Register App then Download google-services.json] をクリックして Firebase Android 構成ファイルを取得し、google-services.json ファイルをプロジェクトの app ディレクトリにコピーします。ファイルをダウンロードしたら、[Skip] をクリックして、コンソールに表示される次の手順に進むことができます(build-android-start プロジェクトではすでに実行済みです)。

アプリに google-services プラグインを追加する

google-services プラグインは、google-services.json ファイルを使用して、Firebase を使用するようにアプリケーションを構成します。google-services プラグインの依存関係とプラグイン自体は、すでにプロジェクト レベルとアプリレベルのビルドファイルにすでに追加されている必要があります。次のエントリを確認します。

build.gradle

buildscript {
  ...
  dependencies {
    ...
    classpath 'com.google.gms:google-services:4.3.8'
  }
}

app/build.gradle

plugins {
  ...
  id: 'com.google.gms.google-services'
}

依存関係を追加する

FCM と FIAM には、次の依存関係が必要です。これらの依存関係は、すでにアプリレベルのビルドファイルに追加されている必要があります。次の依存関係が追加されていることを確認します。

app/build.gradle

dependencies {
  ...
  implementation platform('com.google.firebase:firebase-bom:28.4.2')
  implementation 'com.google.firebase:firebase-analytics'
  implementation 'com.google.firebase:firebase-messaging'
  implementation 'com.google.firebase:firebase-inappmessaging-display'
}

プロジェクトと Gradle ファイルを同期する

アプリですべての依存関係を使用できるようにするには、この時点でプロジェクトを Gradle ファイルと同期する必要があります。Android Studio のツールバーで、[File] > [Sync Project with Gradle Files] を選択します。

4. ログ ID

Firebase Cloud Messaging と Firebase In App Messaging はどちらも、識別子を使用してアプリにメッセージを送信します。FCM では登録トークンを使用し、FIAM ではインストール ID を使用します。

  1. MainActivity.kt で、TODO を以下のコードに置き換えて、メッセージの送信に必要な識別子を記録します。
FirebaseMessaging.getInstance().token.addOnCompleteListener { regTokenTask ->
   if (regTokenTask.isSuccessful) {
       Log.d(TAG, "FCM registration token: ${regTokenTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve registration token",
           regTokenTask.exception)
   }
}
FirebaseInstallations.getInstance().id.addOnCompleteListener { installationIdTask ->
   if (installationIdTask.isSuccessful) {
       Log.d(TAG, "Firebase Installations ID: ${installationIdTask.result}")
   } else {
       Log.e(TAG, "Unable to retrieve installations ID",
           installationIdTask.exception)
   }
}
  1. Android デバイスを接続して、Android Studio ツールバーの実行アイコン(実行.png)をクリックします。[Log Identifiers] ボタンをタップすると、FCM 登録トークンと Firebase インストール ID が logcat に記録されます。出力は次のようになります。
D/FcmAndFiam: Firebase Installations ID: emMc5...AsJfb
  FCM registration token: emMc5LART6GV7...r0Q

5. テスト FCM メッセージを送信する

FCM メッセージは、Firebase コンソールと FCM REST API の両方から送信できます。この Codelab では、FCM 通知メッセージを作成してデバイスに送信します。通知メッセージとは、システムの通知領域に表示されるメッセージです。次の方法でテスト FCM メッセージを送信します。

  1. アプリがバックグラウンドにあることを確認する(ホーム画面に移動する)
  2. Firebase コンソールに移動し、左側のナビゲーションで [Cloud Messaging] を選択します。
  3. [最初のメッセージを送信します] を選択します。
  4. メッセージのタイトルと本文を追加し、[テスト メッセージを送信] をクリックします。

207ced65f5245ada.png

  1. FCM 登録トークンを追加して、[テスト] をクリックします。

f3556c6a8a6453fe.png

  1. デバイスの表示通知を確認する
  2. 通知をタップするとアプリが開きます

6. テスト用の FIAM メッセージを送信

Firebase In App Messaging は、さまざまなユーザー イベントの結果としてトリガーできます。テスト メッセージは、アプリ起動イベントを使用してアプリ内メッセージをトリガーします。次の方法でテスト用の FIAM メッセージを送信します。

  1. アプリがバックグラウンドにあることを確認する(ホーム画面に移動する)
  2. Firebase コンソールに移動し、左側のナビゲーションで [In-App Messaging] を選択します。
  3. [最初のキャンペーンを作成] を選択します。
  4. トップバナー キャンペーンを選択し、メッセージのタイトルと本文を入力します
  5. [デバイスでテスト] をクリックします。

69f6ea5efff240d1.png

  1. インストール ID を追加し、[テスト] をクリックします。

24b101edfab47144.png

  1. アプリをもう一度開く
  2. アプリ内メッセージの確認

7. 完了

これで、FCM と FIAM の両方のメッセージが正常に送信されました。アプリがフォアグラウンドとバックグラウンドのどちらで実行されているかにかかわらず、ユーザーと交流する方法を確認しました。

参考資料

次のステップ

  • 独自の Android アプリでユーザーにメッセージを送信できます。

リファレンス ドキュメント