アプリ開発において、Notificationのプッシュ通知は必須項目ですが、躓きやすい部分でもあります。この記事では、FlutterFlowでプッシュ通知を実装する際に、うまく作動しない場合のチェック項目についてまとめています。
具体的には、”Push notification sent to 0 devices”というエラーが発生した場合の解決方法を紹介します。
うまくいけば、Push nofificationがこのように動きようになります。
最初から設定する場合には、公式マニュアルがありますので、そちらで設定していくと良いでしょう。
まず、Nofiricationの大前提としては、
- プッシュ通知は iOS シミュレーターでは機能しません。テストするには、実際のデバイスを使用する必要があります。
これを行う方法についてはiPhoneやAndroidの実機を用意してください。 - ユーザーがアプリにログインしていない場合、プッシュ通知は機能しません。
- デバイスでアプリを開いている場合、プッシュ通知は機能しません。
上記の3項目については理解してください。通常のテストRUNや、プレビューなどではNotfificationは動きません。
これには、理由があり、プッシュ通知はアプリ側の機能のため、FlutterFlowで動作しているわけではないからです。
より詳細を知りたいかたは、プッシュ通知の仕組みとは?分かりやすく種別ごとに説明 を参考にすると良いでしょう。
うまく動作しない場合のチェック
それでは、早速チェックしていきます。
最初にまとめておくと、以下の6つの項目になります。
うまく動作しない場合のチェック項目
- FirebaseがBlazeプランになっているか確認
- Apple用のプッシュ通知キーを作成済みか確認
- APNキーがFirebaseに追加されているか確認
- Appleのプッシュ通知識別子を追加済みか確認
- Firebaseへ必要な権限が追加されているか確認
- リージョンが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でプッシュ通知を実装する際に、うまく作動しない場合のチェックリストを提供しました。特に、AppleのAPN キーを Firebase に追加については、同じようでも再度設定することで上手く行くことがありました。もしかしたら、キーIDなどに空白が入っていたりするこもあるのかもしれません。
まずは、テストでも動作が動くことが重要だと思います。
FlutterFlowでのプッシュ通知実装の問題解決に役立ててください。