1. 始める前に
この Codelab では、ユーザーがアプリをフォアグラウンドで使用している場合でもバックグラウンドで使用している場合でも、ユーザーとやり取りする機能を追加する方法について説明します。
前提条件
なし
ラボの内容
- Firebase を Android アプリに追加する
- 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
ディレクトリにコピーします。ファイルがダウンロードされたら、[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 ファイルと同期する必要があります。[ファイル >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 ツールバーの [実行]()をクリックします。[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 メッセージを送信します。
- アプリがバックグラウンドで動作していることを確認する(ホーム画面に移動)
- Firebase コンソールに移動し、左側のナビゲーションで [Cloud Messaging] を選択します
- [Send your first message] を選択します。
- メッセージのタイトルと本文を追加し、[テスト メッセージを送信] をクリックします。
- FCM 登録トークンを追加して、[test] をクリックします。
- デバイスに表示される通知を確認する
- 通知をタップするとアプリが開く
6. テスト FIAM メッセージを送信
Firebase In App Messaging は、さまざまなユーザー イベントの結果としてトリガーできます。テスト メッセージは、アプリ起動イベントを使用して In-App Messaging をトリガーします。次の手順でテスト FIAM メッセージを送信します。
- アプリがバックグラウンドで動作していることを確認する(ホーム画面に移動)
- Firebase コンソールに移動し、左側のナビゲーションで [In-App Messaging] を選択します
- [最初のキャンペーンを作成する] を選択します。
- トップバナー キャンペーンを選択し、メッセージのタイトルと本文を入力する
- [デバイスでテスト] をクリックします。
- インストール ID を追加し、[テスト] をクリックします。
- アプリを再度開く
- アプリ内メッセージを確認する
7. 完了
これで、FCM と FIAM の両方のメッセージが正常に送信されました。アプリがフォアグラウンドとバックグラウンドのどちらでも、ユーザーとつながる方法を理解しました。
参考資料
次のステップ
- 独自の Android アプリでユーザーにメッセージを送信します。