ZAICOでは、Android・iOS・Rubyエンジニアを絶賛募集中です! 詳しくは、採用ページをご覧ください。
こんにちは! ZAICO開発チームです。
zaicoでは近々TLS1.0/1.1を無効化を予定しています。
これに伴って、TLS1.0/1.1しかデフォルトで対応していない古いAndroid(バージョン4.4.4以前)ではzaicoアプリが使えなくなります。
ただ、今でも古いAndroid端末でアクセスされているユーザーさんはまだ少数ですがいらっしゃいます。
メールなどでも注意喚起しておりますが、そのAndroid端末自体を使っている人にお知らせできないか・・と、以前Firebaseを使ったプッシュ通知を実装していたので、それを使ってユーザーに通知しよう!ということになりました。
今回はFirebaseを使ってAndroid端末にプッシュ通知を行う方法を簡単に紹介したいと思います。
(注)この投稿では全てkotlinでの実装を前提としています。
Firebaseプロジェクトを作成する
最初にFirebaseプロジェクトを作成しておく必要がありますので、Firebaseコンソールからプロジェクトを登録してください。
プロジェクトを作成する際に必ずAnalyticsは有効にしてください。プッシュ通知で使用するクラウドメッセージングには、Analyticsの使用を前提とするためです。
具体的な操作方法は割愛させていただきます。
参考:Firebase プロジェクトについて理解する | firebase.google.com
プロジェクト作成後、後ほどアプリに組み込むための、プロジェクトの設定ファイルgoogle-services.jsonをダウンロードする必要があります。
「プロジェクトを設定」を選択し、「SDKの設定と構成」からダウンロードできます。
参考:設定ファイルをダウンロードする | firebase.google.com
Android側で通知を受け取るための実装をする
Androidアプリのプロジェクトは下記の要件を満たして作成します。
- Jetpack(AndroidX)を使用します。
- compileSdkVersion 28 以降
google-services.jsonの配置
先程ダウンロードしたプロジェクトの設定ファイルgoogle-services.jsonをapp直下においてください。
Firebase SDKの追加
プロジェクトレベル(プロジェクトディレクトリ直下、appディレクトリの上)にあるbuild.gradleに以下の記述を追加してください。これらのFirebaseのライブラリが置かれているリポジトリからダウンロードできるようにするための設定です。
buildscript { repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository } dependencies { ... // Add this line classpath 'com.google.gms:google-services:4.3.8' } } allprojects { ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository ... } }
アプリレベル(appディレクトリ直下)にあるbuild.gradleに以下の記述を追加してください。FirebaseのAnalyticsとクラウドメッセージングライブラリをインポートする設定になります。なお、
Firebase Android BoM を使用すると、アプリで常に互換性のある Firebase ライブラリ バージョンが使用されるようになります。
plugins { id 'com.android.application' // Add this line id 'com.google.gms.google-services' } dependencies { // Import the Firebase BoM implementation platform('com.google.firebase:firebase-bom:28.0.1') // Declare the dependencies for the Firebase Cloud Messaging and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-messaging-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
以上でアプリ側の実装は完了です。アプリをビルド、インストールしてください。
Firebaseコンソールからプッシュ通知を行う
Firebaseコンソールにアクセスし、プロジェクトを選択、サービスの中から「Cloud Messaging」を選択、右ペインで「Send your first Message」を選択してください。
「ターゲット」では「アプリ」に今回作成したアプリのパッケージ名を指定してください。
「スケジュール設定」では「現在」を選択してください。送信してすぐに受信することができます。
各種設定をしたら「確認」ボタンをクリック、続いて「公開」をクリックしてプッシュ通知を送信してください。
プッシュ通知の受信
Firebaseからプッシュ通知を送信するとすぐに(場合によっては数分してから)端末の方で受信します。
受信できました!
プッシュ通知をAndroidで受信するだけならたったこれだけで実現できます!
ただ、今回の実装では、デモアプリを開いている時には受信できない(通知が残らない)という問題や、プッシュ通知を受けてアプリ側でアクションをとりたい、という要望が出てくるかと思いますので、さらに改善、実装を進めようと思います。
以上、簡単ですがFirebaseからプッシュ通知を行う方法でした。
参考記事
Android で Firebase Cloud Messaging クライアント アプリを設定する | firebase.google.com