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

1. 始める前に

このコードラボでは、ユーザーがアプリをフォアグラウンドで使用しているか、アプリがバックグラウンドで使用しているかに関係なく、ユーザーと関わる機能を追加する方法を学びます。

206c7ecece550bde.png

前提条件

なし

学べること

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

必要なもの

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

2. 始めましょう

サンプルコードを入手する

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

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

Android Studio から、 codelab-fcm-and-fiamディレクトリ ( android_studio_folder.png )。これは、前の手順 ( [ファイル] > [開く] > .../codelab-fcm-and-fiam) で複製されたものになります。

これで、Android Studio で FcmAndFiam プロジェクトが開いたはずです。 google-services.json ファイルが見つからないという警告が表示されても、心配する必要はありません。次のステップで追加されます。

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

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

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

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

パッケージ名を追加した後、[アプリの登録] をクリックし、[google-services.json をダウンロード] をクリックしてFirebase Android 構成ファイルを取得し、その google-services.json ファイルをプロジェクトのappディレクトリにコピーします。ファイルがダウンロードされたら、 「スキップ」をクリックして、コンソールに表示される次のステップに進むことができます (これらのステップは 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'
  }
}

アプリ/ビルド.gradle

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

依存関係を追加する

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

アプリ/ビルド.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 ツールバーから[ファイル] > [プロジェクトを Gradle ファイルと同期]を選択します。

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 デバイスを接続し、 「実行」( 実行.png )Android Studio ツールバー。 [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 の両方から送信できます。このコードラボでは、FCM 通知メッセージを作成し、デバイスに送信します。通知メッセージは、システムの通知領域に表示されるメッセージです。次の方法でテスト FCM メッセージを送信します。

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

207ced65f5245ada.png

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

f3556c6a8a6453fe.png

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

6. テスト FIAM メッセージを送信する

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

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

69f6ea5efff240d1.png

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

24b101edfab47144.png

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

7. おめでとうございます

おめでとうございます。FCM メッセージと FIAM メッセージの両方が正常に送信されました。これで、ユーザーがアプリをフォアグラウンドで使用しているか、アプリがバックグラウンドで使用しているかに関係なく、ユーザーと関わる方法がわかりました。

参考文献

次は何ですか

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

参考資料