【iOS】FirebaseからPush通知を受信する
始めに
本ドキュメントは次の1点を目標とします。
- Firebaseから送信したPush通知をiOSデバイスで受信する
執筆時の開発環境は次の通りです。
- Xcode 12.4
- Swift 5
Xcodeプロジェクトとそれに対応するFirebaseプロジェクトが作成済みであり、iOS側のFirebase初期導入手順は実装済みである事が前提です。
また次のライブラリが必要です。
- FirebaseMessaging
実装
APNs認証キーの作成
AppleDeveloperにサインインし、Certificates,Identifiers & Profilesを表示します。
Keysを選択し、+ボタンをクリックします。
Key Nameに好みの名称を入力し、Apple Push Notifications service(APNs)にチェックを入れ、Continueをクリックします。
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アプリを追加してください。
AppleDeveloperで入手したp8ファイルと2つのIDを入力し、アップロードを実行します。
iOSアプリの実装
Capabilities設定
XcodeのSetting & Capabilities画面を表示し、「+Capability」をクリックします。
表示された一覧の中からPush Notificationsを追加します。
通知認証リクエスト処理
AppDelegateに次の処理を追加します。
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通知が送信されます。
暫く待つとデバイスで受信することを確認できます。
Author And Source
この問題について(【iOS】FirebaseからPush通知を受信する), 我々は、より多くの情報をここで見つけました https://qiita.com/ICTFractal/items/dcfba9e52c23ddac42b0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .