1. 始める前に
この Codelab では、ユーザーがアプリをフォアグラウンドで使用している場合でもバックグラウンドで使用している場合でも、ユーザーとやり取りする機能を追加する方法について説明します。
前提条件
なし
ラボの内容
- Android アプリに Firebase を追加する
- FCM と FIAM の依存関係を追加する
- アプリにテスト FCM メッセージを送信する
- アプリにテスト FIAM メッセージを送信する
必要なもの
- Android Studio 4.1
- Android デバイスまたはエミュレータ
2. 始める
サンプルコードを取得する
コマンドラインから GitHub リポジトリのクローンを作成します。
スターター アプリをインポートする
Android Studio で、codelab-fcm-and-fiam
ディレクトリ()を選択します。これは、前のステップ([File] > [Open] > .../codelab-fcm-and-fiam)でクローンを作成したサービスです。
Android Studio で FcmAndFiam プロジェクトが開きます。google-services.json ファイルがないという警告が表示されても心配はいりません。次のステップで追加します。
3. Firebase コンソール プロジェクトを作成する
プロジェクトに Firebase を追加する
- Firebase コンソールに移動します。
- [プロジェクトを追加] を選択します。
- プロジェクト名を選択または入力します。
- Firebase コンソールで残りの設定手順を実施した後、[プロジェクトを作成](既存の Google プロジェクトを使用する場合は [Firebase を追加])をクリックします。
- 新しいプロジェクトの概要画面で、Android アイコンをクリックして設定ワークフローを起動します。
- Codelab のパッケージ名(
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'
}
}
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 ファイルと同期する必要があります。[ファイル >Sync Project with Gradle Files] をクリックします。
4. ログ ID
Firebase Cloud Messaging と Firebase In-App Messaging はどちらも、識別子を使用してアプリにメッセージを送信します。FCM は登録トークンを使用し、FIAM はインストール ID を使用します。
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)
}
}
- Android デバイスを接続し、Android Studio ツールバーの [実行]()をクリックします。[識別子をログに記録] ボタンをタップすると、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 メッセージを送信します。
- アプリがバックグラウンドで実行されている(ホーム画面に移動)
- Firebase コンソールに移動し、左側のナビゲーションで [Cloud Messaging] を選択します。
- [最初のメッセージを送信します] を選択します。
- メッセージのタイトルと本文を追加し、[テスト メッセージを送信] をクリックします。
- FCM 登録トークンを追加し、[テスト] をクリックします。
- デバイスの表示通知を確認する
- 通知をタップするとアプリが開く
6. テスト FIAM メッセージを送信
Firebase アプリ内メッセージングは、さまざまなユーザー イベントの結果としてトリガーできます。テスト メッセージは、アプリの起動イベントを使用してアプリ内メッセージをトリガーします。次の手順でテスト FIAM メッセージを送信します。
- アプリがバックグラウンドで実行されている(ホーム画面に移動する)
- Firebase コンソールに移動し、左側のナビゲーションから [In-App Messaging] を選択します。
- [最初のキャンペーンを作成] を選択
- トップバナー キャンペーンを選択し、メッセージのタイトルと本文を入力します。
- [デバイスでテスト] をクリックします。
- インストール ID を追加し、[テスト] をクリックします。
- アプリをもう一度開く
- アプリ メッセージでモニタリング
7. 完了
これで、FCM と FIAM の両方のメッセージが正常に送信されました。これで、ユーザーがアプリをフォアグラウンドで使用している場合とバックグラウンドで使用している場合のどちらでも、ユーザーに働きかける方法を理解できました。
参考資料
次のステップ
- 独自の Android アプリでユーザーにメッセージを送信します。