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 プロジェクトとアプリを設定する

Firebase プロジェクトを作成する

  1. Google アカウントを使用して Firebase コンソールにログインします。
  2. ボタンをクリックして新しいプロジェクトを作成し、プロジェクト名(例: Send messages codelab)を入力します。
  3. [続行] をクリックします。
  4. Firebase の利用規約が表示されたら、内容を読み、同意して [続行] をクリックします。
  5. (省略可)Firebase コンソールで AI アシスタンス(「Gemini in Firebase」)を有効にします。
  6. この Codelab では、Firebase プロダクトを最適に利用するために Google アナリティクスが必要となるため、Google アナリティクスのオプションの切り替えをオンのままにします。画面上の手順に沿って Google アナリティクスを設定します。
  7. [プロジェクトを作成] をクリックし、プロジェクトのプロビジョニングが完了するまで待ってから、[続行] をクリックします。

アプリに Firebase を追加する

  1. 新しいプロジェクトの概要画面で、Android アイコンをクリックして設定ワークフローを起動します。
  2. コードラボのパッケージ名(com.google.firebase.codelab.fcmandfiam)を入力します。
  3. パッケージ名を追加したら、[アプリを登録して google-services.json をダウンロード] をクリックして Firebase Android 構成ファイルを取得し、google-services.json ファイルをプロジェクトの app ディレクトリにコピーします。ファイルをダウンロードしたら、コンソールに表示される次の手順の [Skip] をクリックします(build-android-start プロジェクトではすでに完了しています)。
  4. アプリに 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. ログ識別子

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 のツールバーで [Run](execute.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 アプリ内メッセージングは、さまざまなユーザー イベントの結果としてトリガーできます。テスト メッセージは、アプリを開くイベントを使用してアプリ内メッセージをトリガーします。次の方法でテスト FIAM メッセージを送信します。

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

69f6ea5efff240d1.png

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

24b101edfab47144.png

  1. アプリを再度開く
  2. アプリ内メッセージを確認する

7. 完了

これで、FCM メッセージと FIAM メッセージの両方を送信できました。これで、アプリがフォアグラウンドで動作しているかバックグラウンドで動作しているかにかかわらず、ユーザーにアプローチする方法がわかりました。

参考資料

次のステップ

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

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