FireForNet.Firebase.Messaging 1.0.1-preview.22

Prefix Reserved
This is a prerelease version of FireForNet.Firebase.Messaging.
dotnet add package FireForNet.Firebase.Messaging --version 1.0.1-preview.22
                    
NuGet\Install-Package FireForNet.Firebase.Messaging -Version 1.0.1-preview.22
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FireForNet.Firebase.Messaging" Version="1.0.1-preview.22" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FireForNet.Firebase.Messaging" Version="1.0.1-preview.22" />
                    
Directory.Packages.props
<PackageReference Include="FireForNet.Firebase.Messaging" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FireForNet.Firebase.Messaging --version 1.0.1-preview.22
                    
#r "nuget: FireForNet.Firebase.Messaging, 1.0.1-preview.22"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FireForNet.Firebase.Messaging@1.0.1-preview.22
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FireForNet.Firebase.Messaging&version=1.0.1-preview.22&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FireForNet.Firebase.Messaging&version=1.0.1-preview.22&prerelease
                    
Install as a Cake Tool

FireForNet.Firebase.Messaging

Firebase Cloud Messaging for the FireForNet Firebase Client SDK for .NET.

About FireForNet

FireForNet is a platform-agnostic, .NET-native Firebase Client SDK developed as part of the Circuids ecosystem. It provides a consistent Firebase client development experience across .NET application environments, while allowing platform-specific implementations where Firebase requires them.

About This Package

This package provides the Firebase Cloud Messaging (FCM) implementation for FireForNet:

  • FID-based FCM registration
  • Message delivery events
  • Notification permission management
  • Topic subscription

The architecture is contract-driven: this package owns the public contracts and message semantics, while integration packages implement platform-specific behavior.

FID-based registration is the only identity model. The legacy FCM registration token is not supported.

Installation

dotnet add package FireForNet.Firebase.Messaging

Targets net10.0. References FireForNet.Firebase.Core transitively.

Installation

dotnet add package FireForNet.Firebase.Messaging

Targets net10.0. References FireForNet.Firebase.Core transitively.

Setup

builder.Services.AddFirebaseMessaging();

Platform packages extend the returned FirebaseMessagingBuilder:

builder.Services.AddFirebaseMessaging().UseBlazor(...);   // Blazor (all hosting models)
builder.Services.AddFirebaseMessaging().UseBrowser(...);  // framework-independent WASM
builder.Services.AddFirebaseMessaging().UseAndroid(...);  // native (non-MAUI) Android
builder.Services.AddFirebaseMessaging().UseApple(...);    // iOS / macOS / Mac Catalyst

Usage

Resolve IFirebaseMessaging from DI. Call EnsureReadyAsync before other operations:

public class PushService(IFirebaseMessaging messaging)
{
    public async Task StartAsync()
    {
        await messaging.EnsureReadyAsync();
        await messaging.RequestPermissionAsync();
        await messaging.RegisterAsync();

        messaging.OnMessageReceived(async message =>
        {
            // handle data / notification payload
            await Task.CompletedTask;
        });
    }

    public Task SubscribeAsync(string topic) => messaging.SubscribeToTopicAsync(topic);

    public async Task<RemoteMessage?> GetInitialMessageAsync() =>
        await messaging.GetInitialMessageAsync();
}

Registration and delivery events (OnRegistered, OnMessageReceived, OnNotificationOpened) return an IAsyncDisposable that unregisters the callback when disposed.

Package Purpose
FireForNet.Firebase.Messaging.Blazor Blazor integration (WebAssembly, Server, Hybrid, Auto)
FireForNet.Firebase.Messaging.Browser Framework-independent WASM integration
FireForNet.Firebase.Messaging.Android Native (non-MAUI) Android integration
FireForNet.Firebase.Messaging.Apple Apple native integration (iOS, macOS, Mac Catalyst)
FireForNet.Firebase.Installations Installations identity used by FCM registration

Documentation

Comprehensive FireForNet documentation is being prepared for the Release Candidate stage.

Project Status

FireForNet is currently available as a Preview release and is approaching its Release Candidate milestone. APIs, package structure, and implementation details may continue to evolve before RC and GA.

The RC milestone will be followed by an extensive cross-platform validation and testing phase before the first GA release.

All FireForNet packages are part of a coordinated release train and share the same version number.

Source Availability

FireForNet is currently being developed in a private source repository during the Preview development phase. The source will be made publicly available as the project approaches its open-source phase, with the public repository established from the appropriate release milestone.

Until then, NuGet Preview packages provide the public distribution channel for evaluating and using FireForNet.

License

This package is licensed under the Apache-2.0 license.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on FireForNet.Firebase.Messaging:

Package Downloads
FireForNet.Firebase.Messaging.Blazor

Package Description

FireForNet.Firebase.Messaging.Browser

Package Description

FireForNet.Firebase.Messaging.Android

Package Description

FireForNet.Firebase.Messaging.Apple

Package Description

FireForNet.Firebase.Messaging.Maui

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1-preview.22 54 9/27/2026
1.0.1-preview.21 58 9/22/2026
1.0.1-preview.20 62 9/18/2026
1.0.1-preview.19 75 9/12/2026
1.0.1-preview.18 95 8/24/2026
1.0.1-preview.17 97 8/9/2026
1.0.1-preview.16 85 8/9/2026
1.0.1-preview.15 87 8/8/2026
1.0.1-preview.14 78 8/8/2026

v1.0.1-preview.22
- Synchronized package version with the preview.22 release.

v1.0.1-preview.21
- Synchronized with the Messaging.Android dependency cleanup and the framework-free MAUI integration sweep.

v1.0.1-preview.20
- Synchronized package version with the preview.20 release.
- Added native Messaging platform integration packages: FireForNet.Firebase.Messaging.Android (Android) and FireForNet.Firebase.Messaging.Apple (iOS, macOS, Mac Catalyst).

v1.0.1-preview.19
- Synchronized package version with the preview.19 release.
- RemoteNotification now exposes Link and RemoteMessage now exposes Link. The web integration packages surface the notification's deep link (fcmOptions.link, or the legacy notification.click_action) so consumers can act on the tapped notification's target.

v1.0.1-preview.18
- Synchronized package version with the preview.18 release.

v1.0.1-preview.17
- Fixed the web integration packages (FireForNet.Firebase.Messaging.Browser and FireForNet.Firebase.Messaging.Blazor) sending the wrong FIS auth scheme on the FCM CreateRegistration request. The x-goog-firebase-installations-auth header now uses the official `FIS {token}` scheme (matching the Web JS SDK) instead of `FIS_v2 {token}`, which FCM rejected with HTTP 401 UNAUTHENTICATED. The service worker's cold-start re-registration was updated to match.
- Added a configurable default notification icon. The web integration packages now resolve relative notification icon/image/badge values to absolute URLs against the app origin, and a new DefaultNotificationIcon option (on MessagingBlazorOptions/MessagingBrowserOptions) is provisioned to the service worker as the fallback icon when the payload supplies none.

v1.0.1-preview.16
- Fixed the web integration packages (FireForNet.Firebase.Messaging.Browser and FireForNet.Firebase.Messaging.Blazor) rejecting a null RegisterOptions. RegisterAsync now honors the documented contract that options is optional (null = defaults) and falls back to the configured VAPID key instead of throwing ArgumentNullException.

v1.0.1-preview.15
- The web integration packages (FireForNet.Firebase.Messaging.Browser and FireForNet.Firebase.Messaging.Blazor) now honor their ServiceWorkerPath and ServiceWorkerScope options when registering the service worker, so consuming apps can reference the shipped service worker directly instead of vendoring a copy.

v1.0.1-preview.14
- Added web integration packages (FireForNet.Firebase.Messaging.Browser and FireForNet.Firebase.Messaging.Blazor) that implement the platform contracts for FID-based registration, message delivery, and permission management on the web.

v1.0.1-preview.13
- Initial release of the Firebase Messaging core package.
- FID-based FCM registration (RegisterAsync/UnregisterAsync/OnRegistered/OnUnregistered).
- Message delivery events (OnMessageReceived/OnNotificationOpened) and one-shot GetInitialMessageAsync.
- Notification permission management (GetPermissionStatusAsync/RequestPermissionAsync).
- Topic subscription (SubscribeToTopicAsync/UnsubscribeFromTopicAsync).
- Contract-driven platform contracts (IMessagingRegistrar, IMessagingEventSource, IMessagingPermissionManager, IMessagingTopicSubscriber).