Firebase Cloud Messaging (FCM)

Send Firebase Cloud Messaging V1 push notifications from Delphi. Service-account JWT signing, OAuth 2.0 token exchange and typed FCM message construction in one component.

TsgcHTTPGoogleCloud_FCM_Client

FCM HTTP V1 client — loads your Google service-account JSON, signs an RS256 JWT, exchanges it for an OAuth access token and POSTs the FCM message to fcm.googleapis.com/v1/projects/<id>/messages:send.

Component class

TsgcHTTPGoogleCloud_FCM_Client

Platforms

Windows, macOS, Linux, iOS, Android

Edition

Standard / Professional / Enterprise

Load service account, send push

Load your Firebase service-account JSON, set the project id, then call SendMessage with the FCM payload (token / topic / condition).

uses
  sgcHTTP;

var
  FCM: TsgcHTTPGoogleCloud_FCM_Client;
begin
  FCM := TsgcHTTPGoogleCloud_FCM_Client.Create(nil);
  FCM.GoogleCloudOptions.ServiceAccountJSON.LoadFromFile('service-account.json');

  FCM.SendMessage(
    'fcm-device-token-here',
    'Hello from Delphi',
    'This is a test FCM push');
end;
// uses: sgcHTTP
TsgcHTTPGoogleCloud_FCM_Client *FCM = new TsgcHTTPGoogleCloud_FCM_Client(this);
FCM->GoogleCloudOptions->ServiceAccountJSON->LoadFromFile("service-account.json");

FCM->SendMessage(
  "fcm-device-token-here",
  "Hello from Delphi",
  "This is a test FCM push");

What's inside

Targets the FCM HTTP v1 endpoint — the legacy fcm.googleapis.com/fcm/send endpoint was deprecated by Google.

Service-account auth

Loads the standard Firebase service-account JSON, signs an RS256 JWT with the contained private key, then exchanges it at oauth2.googleapis.com/token for an access token.

Send to token / topic / condition

SendMessage overloads accept a registration token, a topic name (/topics/news) or a topic condition expression. SendBroadcast targets a topic for fan-out.

Notification + data payloads

Both the notification object (title/body/image) and the free-form data dictionary are exposed, including platform-specific overrides (Android android, iOS apns, Web webpush).

Token caching

Access tokens are cached and refreshed only when expired, so high-volume senders don't hammer the OAuth endpoint.

HTTP transport

Uses the project's standard HTTP client — pair with proxies, TLS settings and rate limiters as you would any other HTTP request.

Errors typed

OnSendError reports HTTP and FCM-specific errors (unregistered token, invalid argument, quota exceeded) so you can prune dead tokens or back off.

Specifications & references

Authoritative sources for the API this component implements.

Documentation & Demos

Deep-link to the component reference, grab the ready-to-run demo project, and download the trial.

Online Help — FCM Client Full property, method and event reference for this component.
Demo Project — Demos\20.HTTP_Protocol\03.Google Ready-to-run example project. Ships inside the sgcWebSockets package — download the trial below.
Technical Document (PDF) Features, quick start, code samples for Delphi & C++ Builder and primary-source references — this component only.
User Manual (PDF) Comprehensive manual covering every component in the library.

Ready to Send FCM Pushes from Delphi?

Download the free trial and integrate Firebase Cloud Messaging into your Delphi applications.