前回Firebaseを使ってiOSにプッシュ通知を行いましたが、MemberCenterでのやりとりに、かなり時間をとられる結果となりました。
その点、AndroidもFirebaseもGoogleのプロダクトであるためか、かなり簡略な手順でプッシュ通知受信を実装することができます。
Firebaseとプッシュ通知
Googleが運営しているモバイルバックエンドサービスです。
むっちゃ高機能&多機能です。
しかも無料! 素敵! キャリアウーマン!
Androidのプッシュ通知は以前GCMという名称で独立したサービスでしたが、現在はFCMという名称でFirebaseに統合されています。
Firebaseにプロジェクトを作成
Firebaseコンソールにログインし、新規プロジェクトを作成します。
下のダイアログが出るので
プロジェクト名を入れ、国/地域 は日本にしておきましょう。
画像に書いてあるように、作成できるプロジェクト数には限りがあるので注意。
アプリを追加
プロジェクトを作成できたら、トップ画面からAndroidアプリを追加します。
iOSアプリを追加済みの場合、「別のアプリを追加」からAndroidを選択。
↓
下のダイアログが出ます。
「パッケージ名」を入力して次へ。
google-services.jsonというファイルがダウンロードされるので、保存しておきます。
ダイアログは終了してOK。gradleの設定はしません。
Unityの設定
さて、Unityでプロジェクトを作成しましょう。
UnityにSDKを導入する
Unity用FirebaseSDKダウンロードサイトからDOWNLOAD THE SDKボタンでSDKをダウンロードし、
解凍したファイルからFirebaseMessaging.unitypackageをUnityプロジェクトにインポートします。
そしてさっきダウンロードしたgoogle-services.jsonをプロジェクトのどこかにドラッグ&ドロップします。置き場所はどこでもかまいません。
Firebaseのコードを実装
ソース、書こう。
中身はiOSと同じもので問題ありません。マルチプラットフォームで展開しているアプリにはありがたいことでございます。中身は前回か公式サイト参照。
Firebase.Messaging.FirebaseMessaging.TokenReceived で受け取るtokenという文字列は、実行したデバイスを表す一意な値です。
Firebaseのコンソールから特定の端末にのみ通知を送りたい場合に使用するので、デバッグ用端末などのトークンはlogcatで出力してメモっておきましょう。
ビルド
ここまでで準備が完了です。やはりiOSに比べるとかなり手軽に試せますね。
Android向けにビルドしましょう。
やりかたがわからない方はこちらの記事参照。
本来ならばプッシュを受信するためのServiceクラスなどをプラグインで作成すると思うのですが、
Unity用FirebaseSDKにデフォルトの実装がされているっぽいので、そのままでプッシュ受信ができます。神ですね。
Firebaseから通知を送信
FirebaseコンソールのメニューからNotificationsを選択。
「新しいメッセージ」から通知を投げられます。
特定の端末にだけ投げたい場合、FirebaseMessaging.TokenReceivedで取得したトークンを使います。
先日FabricがGoogleに買収されましたね。
そのあとフォローするように「Firebaseと完全にうまくいくようにするし、今のFirebase用のソースは変える必要ないよ!」みたいなメールが来てました。
無料のmBaaSはモバイル開発者にとってはありがたい存在です。