Go Firebase Cloud Messaging Client - firebase

Going through Google's documentation, are Firebase Cloud Messaging Client Libraries only allowed on iOS, Android, Unity, C++ and NodeJS?
I'd like to build a client written in Go that can be pushed messages. Is this possible?

The protocol for receiving FCM messages it not documented. This means you need to use one of the official SDKs to be able to receive messages, and those are indeed only available for iOS, Android, and Web applications.

Related

How to subscribe to events over http in firebase messaging service?

As far as I understand for different mobile devices, firebase messaging service uses different protocols like web push, ans, google play services. But is there a way to notify non mobile device using this service?
Delivery of messages over Firebase Cloud Messaging is only supported to the SDKs listed in the documentation here, currently iOS, Android and Web. There is no documentation for the wire protocol that is used to deliver messages to these clients.
Also see these previous questions asking for delivery to Windows, macOS, and Linux:
How to receive push notifications from Firebase cloud messaging on Windows
Is it possible to develop flutter windows desktop with fcm push notification?
integration firebase messaging with mac os apps ? (Notifications)
Can we use FireBase cloud Messaging to send or receive messages or both ways using C++ on Windows Desktop/Console or Linux console appliction?

FCM - why no longer support FCM direct channel in newer Firebase Admin SDK?

I am trying to implement server for FCM to send notifications to android/iOS devices.
I need to send data-only notifications to both android and iOS but iOS seems very unstable for background notifications. (even though the app is in foreground, I often not get message at all.)
When I test with legacy FCM REST server with FCM direct channel, it works great on iOS but this is not an option for me as newer Admin SDK doesn't support direct channel.
Is there any reason to remove support for FCM direct channel in newer Admin SDK? I see all Firebase docs recommend to use Admin SDK but not sure why they removed the support for direct channel.
If I'm not mistaken FCM sender-side APIs never explicitly supported a direct channel option. As a sender your options were to either specify a device registration token or a topic. These options are present in the newer FCM sender-side APIs (i.e. Admin SDK) as well.
Direct channel is a receiver-end option. I see this option was recently deprecated in the iOS SDK. Folks who work on that repo should be able to provide you more context around that decision. Also if you're experiencing issues with background notifications on iOS I'd recommend you file a bug for the iOS SDK, and try to get it fixed.

Is Firebase client SDK necessary for simple APNS?

I have a project that currently sends PNs through APNS and I'm investigating using Firebase for this purpose. I would prefer that the push notifications be sent through APNS and Firebase merely acts as a wrapper/intermediate around APNS. I'm not using any other feature of Firebase(storage, persistent connections, messaging, etc) either.
All guides/examples on this topic seem to integrate the Firebase SDK and relevant config files but I don't see the need for any client side change if the notifications are going to go through APNS.
Do I really need the Firebase SDK for simply sending PNs? If yes, for what reason?
You only need the Firebase SDK if you intend to use the service.
The behavior of FCM, as you know it, is that when you send a message with FCM, it forwards the message towards APNs, which in turn would send it to the iOS device.
If you're already fine using APNs alone for the push notifications, then you technically don't need the Firebase SDK.

Phonegap notification options that work for both for iOS and Android

I am building mobile apps for iOS and Android using PhoneGap Build. I would like to send push notifications to both types of device using the same server-side process. Is this possible?
Apple's certification process to enable push notifications is painful, much more so than anything available for Android. Do I have to use it?
GCM (Google Cloud Messaging) says it supports both operating systems, but the more I read about it - with respect to Phonegap - the less I see iOS mentioned! And sadly the GCM/Phonegap plugin doesn't support subscribing to a topic, which is a way of sending one message out to all devices in one go via a 'global' topic.
UrbanAirship and PushWhoosh seem to integrate with Phonegap, but I am forced to use their website to create my messages. GCM looks more attractive in this respect, because I can get our own ASP.NET server to talk to GCM via HTTP and thus control messages from our databases.
Main question: Are there any options for a single server-side option which can send push notifications to both iOS and Android via a single Phonegap plugin? (Ideally I would control messages from my own server, where one message can go to all Android/iOS devices in one go, and avoid as many Apple certificates as possible.~)

pushwoosh and google cloud messaging difference

I am novice in notification sending.
I have read some materials and I encountered with the words like
pushwoosh
and
google cloud messaging
For me it(and pushwoosh and GCM) looks like a resource for sending notification.
Also I understand that these words are related but I don't understand this relation(hierarchy)
Please clarify this relation.
Google Cloud Messaging, or GCM, is a free service by Google that can deliver messages from your server to your Android app. The app can choose to handle such messages by displaying notifications to the user.
PushWoosh is a 3rd party service (one of several, such as UrbanAirship and Parse) that has an API for sending push notifications for multiple platforms, including Android and iOS.
PushWoosh uses Google Cloud Messaging under the hood to send the messages to Android devices.
Your server can interface directly with Google's GCM server or interface with a 3rd party provider, which can cost you money, but can be easier to implement.

Resources