115
117

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

無料で使えて送り放題!Google I/Oで発表されたFirebase Notificationを使ってみた

Last updated at Posted at 2016-05-22

先日開催されたGoogle I/O
そこで無制限で使い放題だって発表されたFirebase Notification
今回はプッシュ通知を送る必要があったのでさっそく導入してみました!
正直導入が簡単すぎて……さすがGoogle、恐ろしい子……
#Firebaseを使う準備
まずはFirebaseにアプリを登録するところから始めます。
このステップさえやってしまえばこれ以降いとも簡単にFirebaseの機能が使えるようになります。

まず、Firebaseのページを開きます。

fire.PNG See our new website → GET STARTED FOR FREEと進んでいきます。 start.PNG new.PNG 新規プロジェクトを作成! regist.PNG わかりやすい名前を付けてプロジェクトを作成します。 a.PNG ここから自分のアプリの登録になります。今回はAndroidアプリに導入してみます。 gh.PNG 自分のアプリのパッケージ名を入力します。 証明書は入力してもしなくてもどっちでもいいです(Notificationには使わないので) ggggg.PNG jjj.PNG アプリを追加ボタンを押すとjsonファイルが勝手に生成されて勝手にダウンロードが始まります。 なのでDLしたjsonファイルを図の説明通り自分のアプリのプロジェクトに追加していきます。
build.gradle(project/build.gradle)
buildscript {
  dependencies {
    // Add this line
    classpath 'com.google.gms:google-services:3.0.0'
  }
}
build.gradle(project/app-module/build.gradle)
...
// Add to the bottom of the file
apply plugin: 'com.google.gms.google-services'

次にbuld.gradleに上記2行を追加するだけでFirebaseの準備が終わります。
これでFirebaseのいろいろな機能が使えるようになりました!
やったぜ!
#一番簡単なNotification導入

build.gradle(project/app-module/build.gradle)
compile 'com.google.firebase:firebase-messaging:9.0.0'

この1行を追加します。おわり。
これだけでコンソールから送ったメッセージをNotificationに表示することが出来ます。
簡単!
ただこのままではアプリがバックグラウンドにいる時しかメッセージを受け取れません。
これ気づかなくてかなり悩んだw
よく見るとドキュメントに目立つように書いてあるんだからちゃんと読めよってお話。
note.PNG

フォアグラウンドでの処理は後述するとしてとりあえずメッセージを送ってみましょう!
#Notificationを送信してみる
hh.PNG
このアイコン(もしくは左のメニュー)からNotificationのページに遷移します。

nn.PNG 最初のメッセージを送信してみましょう。 y.PNG 送りたいメッセージ文とターゲットだけ指定すればすぐメッセージを送ることが出来ます。 aaaa.PNG タイトルを指定したり、カスタムデータを入れることもできます。これによって通知を開いたときの挙動などをonLaunch()で制御することが出来ます。 設定が終わったら送信ボタン!

Screenshot_20160522-220029.png
2秒くらいできます。すごい!
これで誰でも簡単にプッシュ通知が可能になります。やったね!
#フォアグラウンドにいる時もメッセージを受け取る
フォアグラウンドにいる時にも処理を行いたい場合はFirebaseMessagingServiceを継承したクラスを作り、そこで処理を行う必要があります。

MessageService.java
public class MessageService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        Log.d("NANAMIN", remoteMessage.getNotification().getBody());

        // プッシュ通知来た時にやりたいことをここら辺に書く
    }
}

また、マニフェストに以下を追加します。

AndroidManifest.xml
<service
    android:name=".service.MessageService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

これでアプリがフォアグラウンドにいる時も処理ができるようになりました。:tada: :tada: :tada:

今までお金かかりそうだしなんか大変そうだし敬遠しがちだったプッシュ通知、ここまで簡単に実装できるとなるとアプリ作る時にかなり幅が広がる感じがしますね。

115
117
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
115
117

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?