文系iOSエンジニアの備忘録

エンジニア iOS Swift

Firebase Cloud Messaging[2020年]

どうもおはようございます、こんにちは、こんばんは。

ちるたろうです。

 

はじめに

現場でFirebaseを使っているのですが、ナレッジとしてまとめる機会があったのでこちらに投稿します。

興味があってこれからやりたい方、一応サービス概要は知っておきたい方の参考になれば幸いです。

Firebase Cloud Messagingとは 独自にサーバーを立てずにリモートプッシュ通知ができるサービスです。

リモートプッシュ通知を実現するためには、

iOSであればAPNs(Apple Push Notification Service)という機構に則り、

独自にサーバー構築をする必要ありましたが、(→色々面倒

Firebase Cloud Messagingを使えば、サーバーを用意せずに、APNs証明書(またはAPNsキー)を用意するだけでリモートプッシュ通知を実現できるようになります。

公式ドキュメント

できること

Firebaseコンソールから、カスタムしたメッセージをリモートプッシュ通知配信。

User Properties などターゲティングした通知。

スケジュール配信。

プッシュ通知配信からのイベントコンバージョントラッキング。 通知音ON/OFF設定、バッジ設定、カスタムパラメータ送信など。 ※それぞれコンソールのスクショを下記貼ります。


  1. Firebaseコンソールから、カスタムしたメッセージをリモートプッシュ通知配信。

f:id:chiltarou1224:20200726015738p:plain

2.User Properties などターゲティングした通知。 f:id:chiltarou1224:20200726015742p:plain


3.スケジュール配信。 f:id:chiltarou1224:20200726015746p:plain

4.プッシュ通知からのイベントコンバージョントラッキングf:id:chiltarou1224:20200726015749p:plain

5.通知音ON/OFF設定、バッジ設定、カスタムパラメータ送信など。 f:id:chiltarou1224:20200726015752p:plain


料金

無料。

https://firebase.google.com/pricing

  • Firebaseはモバイルアプリ向けのリモートプッシュ通知特化。
  • Firebaseはモバイルネイティブアプリ側、実装簡単。
  • Firebaseはサーバー側の実装不要。

実装方法(iOS)

詳しくは公式ドキュメント  参照してください。

以下、ざっくり書きます。

Firebaseコンソールでのやること

  • Firebaseコンソール上でアプリを登録して、GoogleService-Info.plist をダウンロードする。

https://firebase.google.com/docs/cloud-messaging/ios/client#register-app

  • Apple Developer ConsoleのCertificates, Identifiers & Profilesから、該当アプリのKeysを作成し、ダウンロード。

  • そしてそれをFirebase Console上でアップロードする。

https://firebase.google.com/docs/cloud-messaging/ios/client#upload_your_apns_authentication_key

アプリ側の実装(Xcode上)

https://firebase.google.com/docs/cloud-messaging/ios/client#add-sdks

  • CocoaPodsを使ってFirebaseをiOSプリプロジェクトにインストール
  • GoogleService-Info.plistを組み込み
  • プリプロジェクトの設定>Targets>Signing&Capablitiesから「+」ボタンを押してPush Notificationsを追加
  • コードを書く 

https://firebase.google.com/docs/cloud-messaging/ios/client#initialize_firebase_in_your_app

まとめ

今回は従来からあるAPNs証明書を使用しましたが、

更新をする必要がないことからAPNsキーを使用したやり方のほうが良いと思います。

今回は、3月末まででサービス終了するアプリだったので証明書でやりました。

 

ブログの投稿は基本毎日19時頃する予定です。

コメントいただけると嬉しいです!