Transmitly.ChannelProvider.Firebase
0.3.0
dotnet add package Transmitly.ChannelProvider.Firebase --version 0.3.0
NuGet\Install-Package Transmitly.ChannelProvider.Firebase -Version 0.3.0
<PackageReference Include="Transmitly.ChannelProvider.Firebase" Version="0.3.0" />
<PackageVersion Include="Transmitly.ChannelProvider.Firebase" Version="0.3.0" />
<PackageReference Include="Transmitly.ChannelProvider.Firebase" />
paket add Transmitly.ChannelProvider.Firebase --version 0.3.0
#r "nuget: Transmitly.ChannelProvider.Firebase, 0.3.0"
#:package Transmitly.ChannelProvider.Firebase@0.3.0
#addin nuget:?package=Transmitly.ChannelProvider.Firebase&version=0.3.0
#tool nuget:?package=Transmitly.ChannelProvider.Firebase&version=0.3.0
Transmitly.ChannelProvider.Firebase
A Transmitly channel provider for sending push notifications with Firebase Cloud Messaging (FCM).
Installation
Install the package from NuGet:
dotnet add package Transmitly.ChannelProvider.Firebase
Quick Start
using Transmitly;
using Transmitly.Channel.Push;
using Transmitly.ChannelProvider.Firebase.Configuration;
var client = new CommunicationsClientBuilder()
.AddFirebaseSupport(options =>
{
options.Credential = FirebaseCredential.FromFile("firebase-service-account.json");
options.ProjectId = "your-firebase-project-id"; // optional when available via credential/environment
options.AppName = "default"; // optional (default: "default")
})
.AddPipeline("welcome-push", pipeline =>
{
pipeline.AddPushNotification(push =>
{
push.Title.AddStringTemplate("Welcome!");
push.Body.AddStringTemplate("Thanks for signing up.");
push.ImageUrl.AddStringTemplate("https://transmit.ly/assets/welcome.png");
});
})
.BuildClient();
var recipient = new PlatformIdentityAddress(
"FCM_DEVICE_TOKEN",
type: PlatformIdentityAddress.Types.DeviceToken());
var result = await client.DispatchAsync(
"welcome-push",
[recipient],
TransactionModel.Create(new
{
userId = "12345",
campaign = "welcome"
}));
Firebase Admin Configuration Parameters
AddFirebaseSupport(options => ..., providerId) configures the Firebase Admin dispatcher.
FirebaseOptions parameters
| Option | Required | Default | Description |
|---|---|---|---|
Credential |
Conditional | null |
Credential source used to create GoogleCredential. |
ProjectId |
No | null |
Firebase project id. |
ServiceAccountId |
No | null |
Service account id. |
AppName |
No | default |
Firebase app instance name used for app reuse/isolation. |
Credential is required unless the runtime environment can resolve credentials via Application Default Credentials.
Recipients: Device Tokens and Topics
The push channel supports:
- Device token recipients (
device-token) - Topic recipients (
push-topic)
Topic example:
var topicRecipient = new PlatformIdentityAddress(
"order-updates",
type: PlatformIdentityAddress.Types.Topic());
await client.DispatchAsync(
"welcome-push",
[topicRecipient],
TransactionModel.Create(new { orderId = "A-1001" }));
Multiple Firebase Provider Instances
AddFirebaseSupport accepts an optional providerId, which is useful for multi-tenant or multi-project setups.
using Transmitly.ChannelProvider.Firebase.Configuration;
var client = new CommunicationsClientBuilder()
.AddFirebaseSupport(options =>
{
options.Credential = FirebaseCredential.FromFile("tenant-a.json");
options.AppName = "firebase-tenant-a";
}, providerId: "tenant-a")
.AddFirebaseSupport(options =>
{
options.Credential = FirebaseCredential.FromFile("tenant-b.json");
options.AppName = "firebase-tenant-b";
}, providerId: "tenant-b")
.AddPipeline("otp", pipeline =>
{
pipeline.AddPushNotification(push =>
{
push.Title.AddStringTemplate("Your OTP");
push.Body.AddStringTemplate("Code: {{code}}");
push.AddChannelProviderFilter(Id.ChannelProvider.Firebase("tenant-a"));
});
})
.BuildClient();
Notes
- Push title/body/image come from your
AddPushNotificationtemplates. - The transactional content model is mapped into FCM
Datavalues as strings where possible. - For general pipeline/channel concepts, see the main Transmitly project.
Copyright (c) Code Impressions, LLC. This open-source project is sponsored and maintained by Code Impressions and is licensed under the Apache License, Version 2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- Transmitly (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.Configuration (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.FirebaseAdmin (>= 0.3.0)
-
.NETFramework 4.8
- Transmitly (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.Configuration (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.FirebaseAdmin (>= 0.3.0)
-
.NETStandard 2.0
- Transmitly (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.Configuration (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.FirebaseAdmin (>= 0.3.0)
-
net6.0
- Transmitly (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.Configuration (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.FirebaseAdmin (>= 0.3.0)
-
net8.0
- Transmitly (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.Configuration (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.FirebaseAdmin (>= 0.3.0)
-
net9.0
- Transmitly (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.Configuration (>= 0.3.0)
- Transmitly.ChannelProvider.Firebase.FirebaseAdmin (>= 0.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0 | 78 | 3/25/2026 |
| 0.2.2-13.56ef3d9 | 45 | 3/4/2026 |
| 0.2.2-12.c277573 | 62 | 3/2/2026 |
| 0.2.2-11.112ee9c | 46 | 3/2/2026 |
| 0.2.2-10.75ebf17 | 51 | 2/27/2026 |
| 0.2.2-9.0ece075 | 81 | 1/17/2026 |
| 0.2.1 | 291 | 7/28/2025 |