Skip to content

Firebase Cloud Messaging problem

Why aren’t my Firebase push notifications arriving?

You send a push notification and some users never see it. It reaches Android but not iPhone, it shows up late, or it stopped for people who used to get it. Firebase Cloud Messaging only delivers what the phone allows and what your setup asks for. Here are the causes in the docs’ own words, in the order to check them, or hand it over at a fixed price.

Rather hand it over? App Fix Ticket: One reproducible bug in an existing mobile or web app, diagnosed and fixed.

Full refund if Simon can’t take it on once he sees your project, or if you cancel before work starts. Refund terms.

Short answer

Check the phone first: on Android 13 and higher a new install has notifications off until the user allows them, and on iPhone the app has to ask and the user can say no. If no iPhone gets anything, check that an APNs authentication key is uploaded in the Firebase console. If messages arrive late, send user-facing ones at high priority. If they stopped for some users, the server may be sending to old device tokens.

Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

Why notifications don’t arrive, and the fix

  1. 01

    Android 13 or higher: the user never allowed notifications

    “If a user installs your app on a device that runs Android 13 or higher, your app's notifications are off by default.” Android Developers, Notification runtime permission

    Android 13 added a POST_NOTIFICATIONS runtime permission. An app that never asks for it, or a user who taps Don’t allow, means nothing shows on that phone. The fix is to ask at a moment that makes sense to the user, for example after they book or order, and to point users who said no to your app’s notification settings.

  2. 02

    iPhone: the app never asked, or the user said no

    “The first time your app makes this authorization request, the system prompts the person to grant or deny the request and records that response.” Apple, Asking permission to use notifications

    iOS asks the user once. If they deny it, asking again shows nothing, and only the user can turn notifications back on. Check the authorization status when the app opens, and if it is denied, explain why notifications help and point the user to the app’s settings.

  3. 03

    iPhone gets nothing: no APNs key in Firebase

    “Upload your APNs authentication key to Firebase.” Firebase, Get started with Firebase Cloud Messaging in Apple platform apps

    Firebase sends to iPhones through Apple’s push service, so it needs an APNs authentication key from your Apple Developer account. Without one, Android can work while no iPhone receives anything. Open Project settings, then Cloud Messaging, and upload the key under your iOS app.

  4. 04

    Notifications arrive late: they are sent at normal priority

    “When the device is in Doze mode, delivery may be delayed to conserve battery until the device exits doze.” Firebase, Setting the priority of a message

    Normal is the default priority. An Android phone that is asleep in Doze mode can hold a normal priority message until it wakes. Send notifications the user should see right away, such as a new message or an order update, at high priority.

  5. 05

    It stopped for some users: the server sends to old tokens

    “Message sends and topic fanouts for these stale registrations are unlikely to ever be delivered.” Firebase, Best practices for FCM registration token management

    The server sends to the device tokens it has saved. A token can change, and a phone that has not connected to FCM for over a month goes stale. If the server keeps only an old token, that user stops getting notifications. Save the latest token each time the app opens, and remove tokens FCM rejects.

  6. 06

    Nothing shows while the app is open

    “if the app is running in the foreground when the notification is received, the app's code determines the behavior.” Firebase, Firebase Cloud Messaging message types

    When the app is in the background, Firebase shows a notification message for you. When the app is open, your code decides what happens, so you may need to show the notification yourself. Data messages, which carry only your own fields, always need your code to turn them into a visible notification.

Checked against the vendor’s docs on : Android Developers: Notification runtime permission; Apple docs: Asking permission to use notifications; Firebase docs: Get started with FCM in Apple platform apps; Firebase docs: Setting the priority of a message; Firebase docs: FCM registration token management; Firebase docs: FCM message types.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
A buyer in the United States, July 2022. Shopify on Fiverr
All 127 Fiverr reviews

Related: Expo push notifications not working · App Store Guideline 4.5.4 push notifications · Firebase users keep getting logged out · Firebase password reset email not arriving

Questions

More on this error

Push works on Android but not on iPhone. Where do I look?

Start with the APNs authentication key in the Firebase console, under Project settings, then Cloud Messaging. Then check that the iPhone user allowed notifications for the app in the Settings app.

Which notifications should be high priority?

Firebase’s examples are chat messages, problems with an account and food delivery updates: anything the user expects to see right away. Background updates the user doesn’t need to see can stay at normal priority.

Did users who upgraded to Android 13 lose notifications?

Android says the system pre-grants the permission to eligible apps when the user upgrades their device to Android 13 or higher. New installs on Android 13 and higher start with notifications off until the user allows them.

Can you fix it for me?

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.