NotificationのPush通知が作動しないときのチェックリスト(iOS版)Push nofification sent to 0 devicesの解決

アプリ開発において、Notificationのプッシュ通知は必須項目ですが、躓きやすい部分でもあります。この記事では、FlutterFlowでプッシュ通知を実装する際に、うまく作動しない場合のチェック項目についてまとめています。
具体的には、”Push notification sent to 0 devices”というエラーが発生した場合の解決方法を紹介します。

うまくいけば、Push nofificationがこのように動きようになります。


最初から設定する場合には、公式マニュアルがありますので、そちらで設定していくと良いでしょう。

まず、Nofiricationの大前提としては、

  • プッシュ通知は iOS シミュレーターでは機能しません。テストするには、実際のデバイスを使用する必要があります。
    これを行う方法についてはiPhoneやAndroidの実機を用意してください。
  • ユーザーがアプリにログインしていない場合、プッシュ通知は機能しません。
  • デバイスでアプリを開いている場合、プッシュ通知は機能しません。

上記の3項目については理解してください。通常のテストRUNや、プレビューなどではNotfificationは動きません。

これには、理由があり、プッシュ通知はアプリ側の機能のため、FlutterFlowで動作しているわけではないからです。

より詳細を知りたいかたは、プッシュ通知の仕組みとは?分かりやすく種別ごとに説明 を参考にすると良いでしょう。

うまく動作しない場合のチェック

それでは、早速チェックしていきます。

最初にまとめておくと、以下の6つの項目になります。
うまく動作しない場合のチェック項目

  1. FirebaseがBlazeプランになっているか確認
  2. Apple用のプッシュ通知キーを作成済みか確認
  3. APNキーがFirebaseに追加されているか確認
  4. Appleのプッシュ通知識別子を追加済みか確認
  5. Firebaseへ必要な権限が追加されているか確認
  6. リージョンがFlutterFlowとFirebaseで同じであるか確認

FirebaseがBlazeプランになっているか?

Firebase コンソールに移動し、[プロジェクト設定] > [使用量と請求] > [詳細と設定] を選択します
Blazeプランになっているか?確認してください。

Apple 用のプッシュ通知キーを作成しているか?

Apple Developer アカウントに移動し、[証明書、識別子、プロファイル] > [キー] を選択します。

また、Configure Keyについて、Apple Push Nofirication Serveceもチェックしていることを確認してください。



もし、APNキー作成してない場合には、以下を参考に作成してください。
公式ドキュメント場所

APN キーが Firebase に追加されている

再度、Firebase コンソールに移動し、プロジェクトのプロジェクト ダッシュボードを開き、 [プロジェクト設定] > [プロジェクト設定] > [クラウド メッセージング]を開きます。

「iOS」セクションまでスクロールします。 APN 認証キーの下にファイルがリストされていない場合、APN キーをアップロードする必要があります。

APNキーを追加する方法は以下の通りです

公式ドキュメント

Apple のプッシュ通知識別子を追加していること

Apple Developer アカウントのCertificates, Identifiers & Profilesに移動し、[証明書、識別子、プロファイル] を選択します。パッケージ名としてバンドル IDを入力し、最後に.ImageNotificationをつけている識別子があるか?を書くにください。

新規で作成する場合

公式ドキュメント

Firebaseへ必要な権限が追加されていることを確認

Firebase コンソールに移動し、プロジェクトのプロジェクト ダッシュボードを開きます (プロジェクト タイルをクリックします)。 [プロジェクト設定] > [ユーザーと権限] を選択します。

その中で、以下の3つの項目がfireabse@flutterflow.io で許可されているか?を確認しましょう。

  • Cloud Functions 管理者
  • サービス アカウント ユーザー
  • 編集者

リージョンが FlutterFlow と Firebase で同じであること

FirebaseFunctionのリージョンがNofiticationと同じである必要があります。
これを変更した場合は、直面している通知デプロイの問題の原因である可能性があります。


FlutterFlowのFirebaseでAdvance Settingsがあります。初期はDefaultですが、こちらは、us-centralになってます。
FirebaseのFunctionsのリージョンと同じにしましょう。

*addFcmToken とは?Firebase Cloud Messaging(FCM)を使用してプッシュ通知を送信するために、デバイスのFCMトークンを登録するメソッドになります。addFcmTokenメソッドは、通常、アプリの起動時やユーザーのログイン時に呼び出されます。そのため、ここのカウントがあれば、まずは正常に接続されているとみてOKです。

まとめ


FlutterFlowでプッシュ通知を実装する際に、うまく作動しない場合のチェックリストを提供しました。特に、AppleAPN キーを Firebase に追加については、同じようでも再度設定することで上手く行くことがありました。もしかしたら、キーIDなどに空白が入っていたりするこもあるのかもしれません。

まずは、テストでも動作が動くことが重要だと思います。
FlutterFlowでのプッシュ通知実装の問題解決に役立ててください。

この記事を書いた人

tsubasatwi( つばさ)

国立工業高専卒業(新居浜工業高等専門学校)
「イベント×IT×営業」のカスタマーサクセスマネージャーとして活躍。セールス→構築管理運用まで全体プロジェクト管理の豊富な経験あり。

・主にITに関するイベント集客/法人営業/開発を担当
・大手通信会社を中心にエンタープライズのIT導入を担当(B2B)

DMMで日本初の NoCodeサロン を運営
「NoCodeCamp プログラミングを使わないIT開発 」
https://lounge.dmm.com/detail/2549/