1. Qiita
  2. 投稿
  3. Swift

Firebase Notificationを使用してiOS端末にPush通知を送信する

  • 7
    いいね
  • 0
    コメント
に投稿

はじめに

この記事はHamee Advent Calendar 2016の18日目の記事です。

普段の業務でiOSアプリ開発に携わっているのですが、今回はiOS端末のPush通知をFirebase Notificationを使用して実装する流れを簡潔に書きます。

Firebaseとは?

超絶ざっくりと説明するとFirebaseは2011年にアメリカで開始したMBaasですが,2014年にGoogleに買収されたサービスです。
今回は、Firebase Cloud MessagingしFirebase NotificationからPush通知をすることしか書かないので、Firebaseが提供する諸々の機能などについてはFirebaseの公式サイトの機能説明をご覧ください。

Firebase console上で新規プロジェクトの作成

まず、Firebase consoleで新規プロジェクトを作成します。
スクリーンショット 2016-12-18 21.48.02.png

プロジェクト名/国・地域を入力し作成ボタンを押します。
スクリーンショット 2016-12-18 20.36.37.png

作成したプロジェクト上でiOSアプリにFirebaseを追加を選択します。
スクリーンショット 2016-12-18 21.58.18.png
iOSバンドルIDはPush通知を実装するアプリのBundle Identiferと同じにしてください。

Xcode上で新規プロジェクトの作成

push通知を実装するプロジェクトを作成してください。
プロジェクトのBundle Identiferは先程、作成したFirebase上のプロジェクトのiOSバンドルIDと同じにしてください。
cocoaPodsでfirebaseをインストールします。
次に、XcodeプロジェクトのPush NotificationsをONに設定します。
スクリーンショット 2016-12-18 22.09.04.png
そして、先程Firebase console上でiOSアプリにFirebaseを追加の②で作成したファイルをXcode上のプロジェクトにコピーします。
スクリーンショット 2016-12-18 22.09.04.png
これでXcode上のプロジェクトの設定は完了です。

AppDelegate.swiftに通知処理の実装をする

まずimport文を記述します。

import Firebase

そして、application:didFinishLaunchingWithOptionsメソッドに

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        //プッシュ通知設定登録
        let notificationSettings = UIUserNotificationSettings(
            forTypes: [.Badge, .Sound, .Alert], categories: nil)
         application.registerUserNotificationSettings(notificationSettings)

        application.registerForRemoteNotifications()
        FIRApp.configure()
        return true
    }

上記を記述します。

プッシュ通知を送信する

先程、作成したfirebaseプロジェクトの設定画面に証明書をアップロードします。
スクリーンショット 2016-12-18 20.47.53.png
証明書の発行方法はこちらから

アップロードが完了したらxcodeプロジェクトのアプリを端末で起動します。
プッシュ通知許可ダイアログが表示されるのでOKを選択してください。
IMG_0120.PNG
起動したアプリをバックグラウンドに待機させて
firebase consoleのNotificationsからメッセージを送信します。
スクリーンショット 2016-12-18 21.12.48.png
するとPush通知がピコーンと飛んできます!
IMG_0121.PNG

おわりに

いかがでしょうか?無事Push通知は飛んできましたでしょうか?
FirebaseにはDynamic linksという機能もありPush通知を使用して、アプリ内の狙った箇所にPush通知を起点として画面遷移をすることももちろん可能です!

いろいろなPush通知サービスはたくさんありますが、GoogleがFirebaseを買収しより本格的にサービスを成長させていくと思うので、まだ他社のPush通知サービスと比較すると使いにくい所もありますが是非、Firebaseを使ってみてください!Firebaseは機能が豊富!

Firebaseは奥が深いぞ!