FireForNet.Firebase.Firestore.Browser 1.0.1-preview.22

Prefix Reserved
This is a prerelease version of FireForNet.Firebase.Firestore.Browser.
dotnet add package FireForNet.Firebase.Firestore.Browser --version 1.0.1-preview.22
                    
NuGet\Install-Package FireForNet.Firebase.Firestore.Browser -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.Firestore.Browser" 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.Firestore.Browser" Version="1.0.1-preview.22" />
                    
Directory.Packages.props
<PackageReference Include="FireForNet.Firebase.Firestore.Browser" />
                    
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.Firestore.Browser --version 1.0.1-preview.22
                    
#r "nuget: FireForNet.Firebase.Firestore.Browser, 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.Firestore.Browser@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.Firestore.Browser&version=1.0.1-preview.22&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FireForNet.Firebase.Firestore.Browser&version=1.0.1-preview.22&prerelease
                    
Install as a Cake Tool

FireForNet.Firebase.Firestore.Browser

Framework-independent WASM integration for FireForNet Cloud Firestore.

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 browser-specific Cloud Firestore functionality for FireForNet:

  • Browser local persistence implementations for Firestore

It uses [JSImport] for direct WASM-to-JS interop and is framework-independent; it does not reference the Blazor packages.

Package Boundary

For Blazor applications (WebAssembly, Server, Hybrid, Auto), use FireForNet.Firebase.Firestore.Blazor instead — it uses IJSRuntime.

Installation

dotnet add package FireForNet.Firebase.Firestore.Browser

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

Usage

builder.Services.AddFirestore().UseBrowser();

Platform / Framework Support

Platform / Framework Status
Browser / WASM (Uno Platform, Avalonia WASM, pure .NET WASM) Preview

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

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
1.0.1-preview.22 51 9/27/2026
1.0.1-preview.21 57 9/22/2026
1.0.1-preview.20 57 9/18/2026
1.0.1-preview.19 63 9/12/2026
1.0.1-preview.18 75 8/24/2026
1.0.1-preview.17 81 8/9/2026
1.0.1-preview.16 79 8/9/2026
1.0.1-preview.15 76 8/8/2026
1.0.1-preview.14 70 8/8/2026
1.0.1-preview.13 76 7/23/2026
1.0.1-preview.12 72 7/9/2026
1.0.1-preview.11 79 6/29/2026
1.0.1-preview.10 89 6/25/2026
1.0.1-preview.9 76 6/24/2026
1.0.1-preview.8 76 6/23/2026
1.0.1-preview.7 79 6/9/2026
1.0.1-preview.6 77 6/8/2026
1.0.1-preview.5 87 6/8/2026
1.0.1-preview.4 85 6/8/2026
1.0.1-preview.3 63 6/8/2026
Loading failed

v1.0.1-preview.22
- BREAKING: mutation-batch records carry canonical state strings; cross-tab targetMismatches values are canonical strings; online-state broadcasts use canonical lowercase strings. All tabs of an app must run one library version.

v1.0.1-preview.21
- No functional changes; synchronized with the framework-free MAUI integration sweep.

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

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

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

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

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

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

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

v1.0.1-preview.13
- Added offline-first mutation persistence: BrowserIndexedDbLocalStore now implements ILocalStoreMutationQueue and ILocalStoreOverlayCache via BrowserIndexedDbLocalStore.Mutations.cs partial, storing mutationBatches, documentOverlays, and mutationQueueMeta object stores in the same IndexedDB database (schema version bumped to 3). Enables offline writes to survive tab reload.
- Updated to depend on FireForNet.Firebase.Firestore 1.0.1-preview.13, which adds offline-first optimistic writes and eliminates the proto-to-JSON round-trip.

v1.0.1-preview.12
- Fixed UnobservedTaskException caused by fetch abort surfacing as JSException during WebChannel teardown. The receive loop now catches JSException alongside OperationCanceledException when the cancellation token is triggered, preventing the exception from faulting the fire-and-forget Task. Mirrors the upstream Firestore fix for watch-stream lifecycle races during network disable.

v1.0.1-preview.11
- Fixed InvalidStateError: "Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing" on long-running browser sessions. Browsers tear down idle IndexedDB connections (tab backgrounding, memory pressure, version change in another tab); the cached _db handle became stale and the next operation threw. Added onversionchange/onclose handlers that null the cached handle, a getDatabase() helper that transparently reopens the connection, and converted all exported JS operations to await getDatabase() before creating a transaction. Mirrors the connection-lifecycle pattern already used by Installations.Blazor and RemoteConfig.Blazor.

v1.0.1-preview.10
- Updated to depend on FireForNet.Firebase.Firestore 1.0.1-preview.10, which fixes the "Cursor has too many values" error on snapshot-cursor pagination queries.

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

v1.0.1-preview.8
- Added IndexedDB QuotaExceededError handling: JS detects quota errors via QUOTA_EXCEEDED: prefix, C# catches, evicts via CollectGarbageAsync, retries once, surfaces BrowserFirestoreException(LocalCacheFull) if eviction cannot recover.
- Eliminated localStorage backend (BrowserLocalStorageLocalStore, BrowserLocalStorageInterop, LocalStoreKind enum, LocalStoreKind options property) — no official Firestore JS SDK counterpart; IndexedDB is the only supported browser persistence backend.
- Split BrowserIndexedDbLocalStore into partial classes by interface concern (Documents, Indexes, Cache) for SRP and maintainability.
- Extracted IBrowserIndexedDbInterop interface with BrowserIndexedDbInteropAdapter for testability; quota-retry logic is now unit-testable via interface substitution.
- Added _disposed guard to EnsureInitializedAsync to throw typed BrowserFirestoreException instead of ObjectDisposedException.
- BrowserFirestoreException now extends FirebaseCoreException<FirestoreErrorCode> directly.

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

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

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

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

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

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

v1.0.1-preview.1
- Synchronized package version with the preview10 release.

v1.0.0-preview9
- Synchronized package version with the preview9 release. No functional changes.

v1.0.0-preview8
- Reworked the IndexedDB local store to maintain canonical scalar field indexes in a dedicated object store, kept atomic with each document mutation in a single transaction.
- Added three-tier candidate resolution (document-name lookup, field-index lookup, scoped broad-scan) with managed-side equality pushdown.
- Implemented ILocalStoreIndexManagement and ILocalStoreCacheManagement with deterministic size-based eviction of the lexically-first non-pending document.
- Raised the IndexedDB schema to version 2 (auto-floored) to add the field-index and indexed-field stores.

v1.0.0-preview7
- Adopted plan-based QueryCandidatesAsync local-cache contract with broad-scan fallback.

v1.0.0-preview6
- Synchronized package version with the preview6 Firestore cache-query release.

v1.0.0-preview5
- Includes the Firestore browser-WASM startup fix for early IFirestore resolution.

v1.0.0-preview4
- Synchronized package version with the preview4 release.

v1.0.0-preview3
- Synchronized package version with the preview3 release.

v1.0.0-preview2
- Initial v1.0.0-preview2 package.