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