1.始める前に
このコードラボでは、ユーザーがアプリをフォアグラウンドで使用している場合でも、アプリをバックグラウンドで使用している場合でも、ユーザーと交流する機能を追加する方法を学びます。
前提条件
なし
あなたが学ぶこと
- AndroidアプリにFirebaseを追加する
- FCMとFIAMの依存関係を追加する
- テストFCMメッセージをアプリに送信します
- テストFIAMメッセージをアプリに送信します
必要なもの
- Android Studio 4.1
- Androidデバイスまたはエミュレーター
2.始めましょう
サンプルコードを入手する
コマンドラインからGitHubリポジトリのクローンを作成します。
スターターアプリをインポートする
Android Studioから、 codelab-fcm-and-fiam
ディレクトリを選択します( )。これは、前の手順で複製されたものになります( [ファイル]>[開く]>... / codelab-fcm-and-fiam)。
これで、AndroidStudioで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ファイルと同期する必要があります。 AndroidStudioツールバーから[ファイル]>[プロジェクトをGradleファイルと同期]を選択します。
4.ログ識別子
FirebaseCloudMessagingとFirebaseInApp 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デバイスを接続し、[実行]をクリックします(
)AndroidStudioツールバー。 [識別子のログ]ボタンをタップすると、FCM登録トークンとFirebaseインストールIDがlogcatに記録されます。出力は次のようになります。
D/FcmAndFiam: Firebase Installations ID: emMc5...AsJfb
FCM registration token: emMc5LART6GV7...r0Q
5.テストFCMメッセージを送信します
FCMメッセージは、FirebaseコンソールとFCMRESTAPIの両方から送信できます。このコードラボでは、FCM通知メッセージを作成し、デバイスに送信します。通知メッセージは、システムの通知領域に表示されるメッセージです。次の方法でテストFCMメッセージを送信します。
- アプリがバックグラウンドにあることを確認します(ホーム画面に移動します)
- Firebaseコンソールに移動し、左側のナビゲーションで[クラウドメッセージング]を選択します
- [最初のメッセージを送信する]を選択します
- メッセージのタイトルと本文を追加し、[テストメッセージの送信]をクリックします
- FCM登録トークンを追加し、[テスト]をクリックします
- デバイスの表示通知を確認します
- 通知をタップするとアプリが開きます
6.テストFIAMメッセージを送信します
Firebase In App Messagingは、さまざまなユーザーイベントの結果としてトリガーされる可能性があります。テストメッセージは、アプリのオープンイベントを使用してアプリ内メッセージをトリガーします。次の方法でテストFIAMメッセージを送信します。
- アプリがバックグラウンドにあることを確認します(ホーム画面に移動します)
- Firebaseコンソールに移動し、左側のナビゲーションで[アプリ内メッセージ]を選択します
- [最初のキャンペーンを作成する]を選択します
- トップバナーキャンペーンを選択し、メッセージのタイトルと本文を入力します
- [デバイスでテスト]をクリックします
- インストールIDを追加し、[テスト]をクリックします
- アプリを再度開く
- アプリメッセージで観察する
7.おめでとうございます
おめでとうございます。FCMメッセージとFIAMメッセージの両方が正常に送信されました。これで、ユーザーがアプリをフォアグラウンドで使用しているか、アプリをバックグラウンドで使用しているかに関係なく、ユーザーと交流する方法がわかりました。
参考文献
次は何ですか
- 自分のAndroidアプリでユーザーにメッセージを送信します。