LoginSignup
0
1

More than 3 years have passed since last update.

【iOS】FirebaseからPush通知を受信する

Posted at

始めに

本ドキュメントは次の1点を目標とします。

  • Firebaseから送信したPush通知をiOSデバイスで受信する

執筆時の開発環境は次の通りです。

  • Xcode 12.4
  • Swift 5

Xcodeプロジェクトとそれに対応するFirebaseプロジェクトが作成済みであり、iOS側のFirebase初期導入手順は実装済みである事が前提です。
また次のライブラリが必要です。

  • FirebaseMessaging

実装

APNs認証キーの作成

AppleDeveloperにサインインし、Certificates,Identifiers & Profilesを表示します。
Keysを選択し、+ボタンをクリックします。
Keys追加
Key Nameに好みの名称を入力し、Apple Push Notifications service(APNs)にチェックを入れ、Continueをクリックします。
Register a New Key.png
Firebase設定時に必要となるKey IDをメモしておきます。
Downloadをクリックし、p8ファイルをダウンロードします。
重要
ダウンロードは1度しか行えません。p8ファイルを紛失すると新しくKeyを作り直すことになりますので、大切に保管してください。

次にAppleDeveloperのMembershipを表示し、Team IDをメモしておきます。この情報もFirebase設定時に必要です。

ここまでの手順で次のファイルと情報が手に入りました。

  • APNs認証ファイル(.p8)
  • Key ID
  • Team ID

Firebaseの設定

「プロジェクトの概要」右にある歯車アイコンをクリックします。
表示されたメニュー中の「プロジェクトを設定」を選択します。
プロジェクト設定
Cloud Messagingタブを選択し、「iOSアプリの構成」セクションからAPNs認証キーのアップロードを行います。
iOSアプリの構成が表示されない場合、まずFirebaseプロジェクトにiOSアプリを追加してください。
APNs認証キーのアップロード
AppleDeveloperで入手したp8ファイルと2つのIDを入力し、アップロードを実行します。

iOSアプリの実装

Capabilities設定

XcodeのSetting & Capabilities画面を表示し、「+Capability」をクリックします。
表示された一覧の中からPush Notificationsを追加します。
Capabilities設定

通知認証リクエスト処理

AppDelegateに次の処理を追加します。

AppDelegate.swift
import Firebase

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        FirebaseApp.configure()

        let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
        UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { (success, error) in
            if let error = error {
                debugPrint(error.localizedDescription)
            }
            debugPrint("通知登録\(success ? "成功" : "失敗")")

            DispatchQueue.main.async {
              UIApplication.shared.registerForRemoteNotifications()
            }
        }

        return true
    }
}

動作確認

アプリを起動し、通知認証を許可します。
その後アプリを終了あるいはバックグラウンドにしておきます。

Firebaseコンソールを開き、Cloud Messagingを選択します。
「Send your first message」をクリックし、通知の作成画面を表示します。
次の項目を入力し、「確認」をクリックします。

項目
通知のタイトル 好きなタイトル
通知テキスト 好きな文
ターゲット 「ユーザーセグメント」 > 「アプリ」 > 送信先のアプリを選択
スケジュール 現在
コンバージョンイベント 編集なし
通知音 有効

メッセージの再確認で「公開」をクリックするとPush通知が送信されます。
暫く待つとデバイスで受信することを確認できます。

0
1
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
0
1