Firebase CloudMessagingのプッシュ通知でハマった

以前、FirebaseのFireStoreを使ってデータの保存などを行いましたが、 その続きで、FirebaseのCloudMessagingを使ってプッシュ通知をやってみました。 実際に2日ほどハマってしまった箇所があったので、それについてと解決方法について書いておこうと思います。

以前のFirebase関連記事

Firebase 位置情報を保存する

戸惑う場所は Apple Developer Center の設定

CloudMessagingの導入やソースコードに関しては、 公式で丁寧に説明がある為、詰まるとすると大抵の場合Apple側のプッシュ通知を許可する為の 「APN's 認証キー」周りの設定になると思います。

実際自分も「APN's 認証キー」の発行の仕方に謝りがあり、うまく行かず。 結果2日程どこが間違っているのかの調査に費やしてしまいました。



認証キーの発行

まずは Apple Developer Center にログインします。

「 Keys > All 」をクリック。 Create New Key の「+」ボタンをクリックして分かりやすい名前をつけます。

create a new key

下の Key Services の項目「Apple Push Notifications service (APNs)」にチェックをつけ「Continue」をクリックします。

APNsにチェックをつける

そのまま進み「Download」すると「p8ファイル」がダウンロードされ「KeyID」が表示されます。 そのIDをメモしておきます。

KeyIDをメモしておく

ついでに「TeamID」も確認してメモしておきます。

Team IDをメモしておく


Firebaseに認証キーを設定する

続いて「プロジェクトの設定 > クラウド メッセージング」の画面で認証キーファイルをアップロードします。 認証キーファイルをアップロードする際に先ほどメモしておいた「KeyID」と「TeamID」を入力します。

APNs 認証キーのアップロード


push通知を発行する

あとは今まで通りPush通知を発行します。 するとしっかりと通知が受け取れるのが確認できました。

プッシュ通知受信


まとめ

既存サービスをたくさん使うとエラーログが表示されてくれなかったり、 どこで通信エラーが起きているのかがわからなくなってしまい、時に時間をさいてしまいがちです。 冷静に考えてみれば、ソースコードやCloudMessengerの設定は公式のドキュメント通りに設定していたので 間違っている可能性があるとすればApple側の設定だなとすぐに思いつけたなと反省しました。

この記事が少しでも役に立ってくれたら嬉しく思います。

0 コメント