How to get a APNS token from an existing FCM Token? - firebase-cloud-messaging

We've been using Firebase Messaging with Android and iOS for over a year. Our React Native app currently sends the FCM token to our server for persistence.
We're are adding Braze to handle emails and push. They support Firebase Messaging for Android apps, however for iOS they will only talk to the APNS directly ( not through firebase as we do now ).
Is there a way for us to retrieve the APNS tokens from our saved FCM tokens?
Moving forward we can retrieve the APNS tokens using the method lined out here ( haven't tested ) How to convert a FCM token to APNS token?. However that appears to be a client side solution, we want to support push for those users who will not open the app before we need to send a push.
We went through the Firebase Admin Rest API, but it doesn't appear to have an endpoint that will allow us to convert. Although it is our first time going through them so we may have miss interpreted the documentation.

Related

FCM get registration token via robot framework

I want to get generated registration token which generated by a client such as (Web JS, Android/IOS App...) via robot todo automation testing
I'm thinking to use mountebank to add JS SDK but not simple because related to grant notification permission issue (It's required to able to generate registration token)
Anybody have an idea to get that token via robot please share
Thanks in advance!!!
What is FCM?
Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably send messages at no cost.
Using FCM, you can notify a client app that new email or other data is available to sync. You can send notification messages to drive user re-engagement and retention. For use cases such as instant messaging, a message can transfer a payload of up to 4KB to a client app.
Using deprecated Google Cloud Messaging APIs? Learn more about how to migrate to FCM.
https://firebase.google.com/docs/cloud-messaging

Will I be able to get new GCM tokens after GCM deprecation?

There are a lot of confusing answers on the web, hope someone can make it clear, I have an app that uses GCM.
The GCM to FCM FAQ states that:
Your GCM and FCM registration tokens are mutually interchangeable
Note that client SDKs and GCM tokens will continue to work indefinitely.
It is already very clear that the old GCM token is still valid after GCM service deprecation.
However it is not clear if new installation of my GCM app will still be able to generate new GCM token.
"client SDKs will continue to work indefinitely", does it only mean the notification receiving part will continue to work, or the generate new token part will continue to work too?
Any clarification from official Googlers are welcomed, thank you
What I understood from Frank's answer, the existing tokens from GCM will continue to work but new installations of your app which uses GCM may not generate tokens anymore.
But from mid-April:
You won't be able to compile code using the old client-side APIs on
a newer SDK/Google Play Services anymore
You won't be able to call the GCM REST API to send messages anymore
New installations of your existing GCM-using app may not be able to
get a token.
I also found this thread, according to Diego:
Both GCM sdk and FCM sdk use Google Play services to create tokens and
receive messages. Google Play services is not being deprecated. GCM
sdk is being deprecated in favor of the FCM sdk. In this context
deprecated means:
already released versions of the GCM sdk will keep working
GCM sdk will not receive updates, bugfixes or support
if future versions of Android will introduce breaking changes, the GCM sdk will NOT receive the necessary updates and therefore will not
work on the new devices.
On the Server side, the GCM endpoint is being deprecated in favor of
the FCM endpoint.
the FCM endpoint supports GCM token
we plan to disable the GCM endpoint in the future

Best Approach for Push Notifications for both IOS and Android

I am building the backend for our company's mobile app and we need to send notifications to users from API based on some events. I need some advice on how I can implement this. I am looking for a platform where I can send notifications for both IOS and Android. I recently came across Firebase and got some info that the mobile-app will send a device token to the server, then we will handle the push notification using this token. My assumption here is, I need to save this device token for all the users in a database and send the notification as necessary. Is this the best approach or are there any other good approaches for this? I am pretty sure there will a lot of solutions where I do not have to handle this myself (in database)
I was also looking into Azure Notification Hub for this, but the cons I felt here is that my UI guy (outsourced) is developing the application in React Native and I have not seen any good examples of React Native using Azure Notification Hub.
I am expecting around 1000 users for my application and I am developing my backend in ASP.NET WebAPI. Mostly I will have 2 types of notification
Push notification to specific user.
Push Notification regarding new installations to all the users
Well, according to my experience the best way and the easiest way is using firebase. You will have a lots of option there. In fact according to their comment, whether you're a beginner, intermediate or advanced React Native developer you can be up and running with React Native Firebase in no time.
https://www.npmjs.com/package/react-native-firebase
For more information and adding a project:
https://rnfirebase.io
Firebase getting start:
https://github.com/invertase/react-native-firebase-starter
How does it work?
Firebase Cloud Messaging architecture diagram
An FCM implementation includes two main components for sending and receiving:
A trusted environment such as Cloud Functions for Firebase or an app server on which to build, target, and send messages.
An iOS, Android, or web (JavaScript) client app that receives messages.
You can send messages via the Admin SDK or the HTTP and XMPP APIs. For testing or for sending marketing or engagement messages with powerful built-in targeting and analytics, you can also use the Notifications composer.
last comment copy-right: https://firebase.google.com/docs/cloud-messaging/

After importing an application from GCM to FCM in the Firebase Console, will Push Notifications continue to work for some time through GCM? [duplicate]

Google is deprecating Google Cloud messaging in favor of Firebase Cloud Messaging:
Firebase Cloud Messaging (FCM) is the new version of GCM. It inherits
the reliable and scalable GCM infrastructure, plus new features! See
the FAQ to learn more. If you are integrating messaging in a new app,
start with FCM. GCM users are strongly recommended to upgrade to FCM,
in order to benefit from new FCM features today and in the future.
From some tests I made on my servers, the FCM URL (https://fcm.googleapis.com/fcm/send) works with GCM projects, and vice-versa - the GCM URL (https://android.googleapis.com/gcm/send) works with FCM projects.
Migrating all existing GCM push sending code to FCM would save a lot of trouble and refactoring (I will not have to check, for each push, whether the app version is FCM or GCM).
Is this backward and forward compatibility officially supported or documented?
If you refer to #IanBarber's answer here:
The tokens are different. Firebase Cloud Messaging (GCM) use gets registration tokens from the Instance ID API which means you'll get different tokens between that and GCM2.
You'll need to send that new token back to your server to send messages. On the server side the APIs should be fully compatible (just new endpoints for FCM).
However, if you're looking for any official documentation, I don't think there is one that explicitly states it. Since as much as possible, Google encourages the use of the corresponding APIs, endpoints, etc. depending on what you really intend to use.

Sending Push Notification To All People Who Have Enabled Notifications For My Progressive Web App

I am in the process of developing a new site and have decided to add progressive web app capabilities to the site. I have set it all up correctly and I can send push notifications to devices with whom I know the endpoint via FCM with a cURL command.
My question is how do you send one to all users who have enabled notifications on my site without knowing a list of all users unique endpoints.
If you are using the Firebase Cloud Messaging Web SDK you should be able to get the Firebase token and subscribe that token a topic using the server side API and then you can message the topic.
NOTE: This requires the use of the Firebase Web SDK to work. This is not supported with the raw Web Push API.