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

1. 始める前に

この Codelab では、アプリがフォアグラウンドとバックグラウンドのどちらでも、ユーザーに働きかける機能を追加する方法を学びます。

206c7ecece550bde.png

前提とする環境

なし

ラボの内容

  • Firebase を Android アプリに追加する
  • 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 ファイルを追加する

パッケージ名を追加したら、[アプリを登録]、[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 登録トークンを追加して、[test] をクリックします。

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 アプリでユーザーにメッセージを送信します。

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