Wow, that's a trick, but you now only use FCM-Push in your app and no apn. If the device is not reachable or the app is in background, fcm sends the push to the apple push service. After that, apple is responsible for the push. The advantage is also, that fcm is able to save more than only the last push-message like apn does. If you make such a solution, it might be better to make a polling over the fetch download or the loc_manager with downloading the data over http or websocket. So you can exclude the uncertainty push factor.