Integrations

FlutterFlow Push Notifications: The Complete Setup Guide

How to set up push notifications in a FlutterFlow app with Firebase and FCM, the iOS APNs step that stops most teams, and how Pushfire's FlutterFlow library speeds it up.

EPEnder Puentes
7 min read
Share article
A FlutterFlow app routing a push notification through a cloud symbol to a phone and tablet, drawn in deep indigo with one amber accent.

Key takeaways

  • FlutterFlow push runs on Firebase Cloud Messaging. You connect a Firebase project, turn on Push Notifications in settings, and FlutterFlow generates the send functions for you.
  • iOS needs one credential Android does not: an APNs authentication key (.p8) from Apple, uploaded to Firebase. Skip it and iOS notifications fail with nothing in the FlutterFlow logs.
  • The built-in push action covers titles, bodies, images, and sending to an audience. Timed sequences, tag-based branching, and per-step analytics call for a platform on top.
  • Pushfire ships a FlutterFlow library of custom actions, so you register subscribers and devices and trigger workflows without hand-writing the calls. Pushfire is our product.

FlutterFlow can send push notifications without you writing a delivery backend. It routes everything through Firebase Cloud Messaging, and the console builds the send functions. The setup is short on Android and has one credential step on iOS that stops most first attempts.

Here is the full path: how the pieces fit, the native setup, the iOS APNs key, the errors that show up most, and where Pushfire's FlutterFlow library saves the wiring.

How FlutterFlow push works

FlutterFlow does not deliver push on its own. It builds the payload, the title, body, and any data, then hands it to FCM, which routes to the device. Every device carries an FCM registration token that identifies it.

Android talks to FCM directly. iOS adds a step: FCM has to authenticate with Apple's Push Notification service (APNs) using a key you upload to Firebase, and APNs then delivers to the phone. That second hop is the reason iOS needs the APNs key while Android works without one.

Native setup in FlutterFlow

1. Connect Firebase. In your FlutterFlow project settings, set up the Firebase integration so your app is linked. This is what lets FlutterFlow deploy the Cloud Functions that send push.

2. Turn on Push Notifications. Enable Push Notifications in project settings. FlutterFlow deploys the functions, and Firebase can take 10 to 15 minutes to propagate. A first deploy that errors often works after a short wait.

3. Add the iOS APNs key. In the Apple Developer portal, open Certificates, Identifiers and Profiles, then Keys, and create a key with the Apple Push Notifications service (APNs) option enabled. Download the .p8 file, which you can only download once. In the Firebase Console, go to Project Settings, Cloud Messaging, Apple app configuration, and upload the key along with its Key ID and your Team ID.

4. Handle the permission prompt. FlutterFlow auto-prompts for permission on first launch by default, which can interrupt sign-in. Turn that off and request permission after onboarding with the Request Permission action, so the ask lands at a point the user expects.

5. Send a test from Firebase. Log a device's FCM token with a custom action, then open Firebase Console, Cloud Messaging, and send a test message to that token. If it arrives, delivery is working, and any later problem sits in your FlutterFlow send action rather than the Firebase config.

6. Send from FlutterFlow. Use the built-in push notification action to reach a user or an audience with a title, body, optional image, and a route or data payload for deep links.

Where FlutterFlow push breaks

  • Missing or expired APNs key. iOS delivery fails silently. The Firebase test message isolates it fast, since a successful test rules out the Firebase layer.
  • Null FCM token. On iOS this often means the APNs token is not ready yet. Fetch the APNs token first, then the FCM token, with a short retry loop.
  • Nothing appears in the foreground. FCM does not show a notification while the app is open, so handle that state yourself or expect silence during testing.
  • Stale tokens. A token changes on reinstall, cleared data, or a device restore, and FCM can invalidate it after a couple of months without an open. Listen for token refresh and update the stored token on launch.
  • The simulator sends nothing. FCM push needs real iOS hardware, so test on a physical device.

The fast path: Pushfire's FlutterFlow library

Pushfire is our product, so weigh this section accordingly. Pushfire is a visual push-notification workflow builder that runs on FCM. For FlutterFlow, it ships a library of pre-built custom actions, so you register subscribers, attach device FCM tokens, and assign tags from inside your build instead of writing those calls by hand. Confirm the current action names in the docs when you set it up.

Once devices are subscribers, you send from the console. Broadcasts cover one-off announcements. Workflows lay out on a drag-and-drop canvas with Push, Wait, and Conditional nodes, so you can build onboarding and re-engagement sequences with delays and branching on tags. The Push Notification node delivers to iOS, Android, and Web. You still connect Firebase, since Pushfire uses your Firebase Service Account for delivery, so the APNs key step above still applies for iOS.

If you build with an AI coding agent, npx skills add https://www.pushfire.app installs a Pushfire onboarding skill into Claude Code, Cursor, Copilot, Windsurf, and 50+ other tools, and the agent wires the setup for you. The free tier runs to 5,000 subscribers with push only, and the Pro tier is $29 a month to 50,000 subscribers with broadcasts and API messages (confirm current figures on the pricing page).

When native push is enough and when a platform fits

Native FlutterFlow push covers a lot. If you send occasional announcements to everyone or to a broad audience and you do not need timing logic or per-step reporting, Firebase on its own is fine.

A platform earns its place when you want tag-based segments, timed sequences, branching on user state, and delivery numbers per step without standing up a send service. Pushfire adds that layer through the FlutterFlow library.

Where Pushfire is a weaker fit: SMS connectors show as Coming Soon in the console today, so if SMS is a primary channel right now, a larger engagement platform is the closer match. The same holds if you need deep email-marketing tooling or years of retained analytics. If your backend is Supabase and you would rather trigger sends server-side, the Supabase push guide covers that route.

Frequently asked questions

Does FlutterFlow support push notifications natively?

Yes. FlutterFlow has built-in push powered by Firebase Cloud Messaging. You connect a Firebase project, enable Push Notifications in settings, and send from the built-in action to a user or an audience.

Why do my FlutterFlow push notifications work on Android but not iOS?

Almost always a missing or expired APNs authentication key. iOS needs a .p8 key from Apple uploaded to Firebase Cloud Messaging, and without it iOS fails with no error in the FlutterFlow logs. Send a test from the Firebase Console to a device token to confirm the layer.

Do I need Firebase for FlutterFlow push notifications?

Yes. FCM is the delivery layer, so a connected Firebase project is required. FlutterFlow builds the payload and Firebase routes it to the device.

Can I test FlutterFlow push on the iOS simulator?

No. FCM push needs real iOS hardware, so use a physical device to test the full chain from send to delivery.

How is Pushfire different from FlutterFlow's built-in push?

FlutterFlow's built-in action sends messages. Pushfire adds the audience and automation layer on top of FCM: subscribers, tags, dynamic segments, and visual workflows with delays and branching, along with broadcasts and per-step delivery analytics. Its FlutterFlow library gives you custom actions to register devices and trigger those workflows from your build.

Push from FlutterFlow without the plumbing

Pushfire's FlutterFlow library registers your subscribers and devices and triggers workflows from custom actions, all on top of FCM. Start free at pushfire.app.

FlutterFlow Push Notifications: Complete Setup Guide | PushFire