FireForNet.Firebase.Firestore.Blazor
1.0.1-preview.11
Prefix Reserved
dotnet add package FireForNet.Firebase.Firestore.Blazor --version 1.0.1-preview.11
NuGet\Install-Package FireForNet.Firebase.Firestore.Blazor -Version 1.0.1-preview.11
<PackageReference Include="FireForNet.Firebase.Firestore.Blazor" Version="1.0.1-preview.11" />
<PackageVersion Include="FireForNet.Firebase.Firestore.Blazor" Version="1.0.1-preview.11" />
<PackageReference Include="FireForNet.Firebase.Firestore.Blazor" />
paket add FireForNet.Firebase.Firestore.Blazor --version 1.0.1-preview.11
#r "nuget: FireForNet.Firebase.Firestore.Blazor, 1.0.1-preview.11"
#:package FireForNet.Firebase.Firestore.Blazor@1.0.1-preview.11
#addin nuget:?package=FireForNet.Firebase.Firestore.Blazor&version=1.0.1-preview.11&prerelease
#tool nuget:?package=FireForNet.Firebase.Firestore.Blazor&version=1.0.1-preview.11&prerelease
FireForNet.Firebase.Firestore.Blazor
Blazor integration package for FireForNet Firebase Firestore. Provides IJSRuntime-based browser storage implementations that work across all Blazor hosting models: WebAssembly, Server, Hybrid (MAUI/WPF/WinForms), and Auto.
Installation
dotnet add package FireForNet.Firebase.Firestore.Blazor
Usage
services.AddFirestore(x =>
{
x.PersistenceSettings = PersistenceSettings.Default;
}).UseBlazor(options =>
{
options.LocalStoreKind = LocalStoreKind.IndexedDb;
});
Package Boundary
This package uses IJSRuntime for all JavaScript interop. It is the correct choice for any Blazor hosting model.
For framework-independent WASM environments (Uno Platform, Avalonia WASM, pure .NET WASM), use FireForNet.Firebase.Firestore.Browser instead — it uses [JSImport] for direct WASM-to-JS interop without a Blazor dependency.
Options
| Option | Default | Description |
|---|---|---|
EnableNetworkDetector |
true |
Register the browser network detector for stream recovery |
LocalStoreKind |
IndexedDb |
Storage backend: IndexedDb or LocalStorage |
IndexedDbDatabaseName |
"FireForNet.Firestore" |
IndexedDB database name |
IndexedDbObjectStoreName |
"docs" |
IndexedDB object store name |
IndexedDbVersion |
2 |
IndexedDB schema version (minimum 2) |
| Product | Versions 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. |
-
net10.0
- FireForNet.Firebase.Firestore (>= 1.0.1-preview.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.JSInterop (>= 10.0.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 |
|---|---|---|
| 1.0.1-preview.11 | 54 | 6/29/2026 |
| 1.0.1-preview.10 | 58 | 6/25/2026 |
| 1.0.1-preview.9 | 52 | 6/24/2026 |
| 1.0.1-preview.8 | 54 | 6/23/2026 |
| 1.0.1-preview.7 | 60 | 6/9/2026 |
| 1.0.1-preview.6 | 59 | 6/8/2026 |
| 1.0.1-preview.5 | 57 | 6/8/2026 |
| 1.0.1-preview.4 | 59 | 6/8/2026 |
| 1.0.1-preview.3 | 53 | 6/8/2026 |
| 1.0.1-preview.2 | 59 | 6/8/2026 |
| 1.0.1-preview.1 | 54 | 6/8/2026 |
| 1.0.0-preview9 | 61 | 6/2/2026 |
| 1.0.0-preview10 | 55 | 6/8/2026 |
v1.0.1-preview.11
- Fixed InvalidStateError: "Failed to execute 'transaction' on 'IDBDatabase': The database connection is closing" on long-running Blazor WASM 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 BlazorFirestoreException(LocalCacheFull) if eviction cannot recover.
- Eliminated localStorage backend (BlazorLocalStorageLocalStore, BlazorLocalStorageInterop, LocalStoreKind enum, LocalStoreKind options property) — no official Firestore JS SDK counterpart; IndexedDB is the only supported browser persistence backend.
- Split BlazorIndexedDbLocalStore into partial classes by interface concern (Documents, Indexes, Cache) for SRP and maintainability.
- Extracted IBlazorIndexedDbInterop interface for testability; quota-retry logic is now unit-testable via interface substitution.
- Added _disposed guard to EnsureInitializedAsync to throw typed BlazorFirestoreException instead of ObjectDisposedException.
- BlazorFirestoreException 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
- Migrated BlazorIndexedDbInterop and BlazorNetworkInterop to lazy ES-module import via Lazy<Task<IJSObjectReference>> for thread-safe concurrent access
- Added dual disposal (IDisposable + IAsyncDisposable) with JSDisconnectedException handling
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
- Initial release. Replaces FireForNet.Firebase.Firestore.Blazor.WebAssembly.
- IJSRuntime-based IndexedDB, localStorage, and network detection interop for all Blazor hosting models (WASM, Server, Hybrid, Auto).
- UseBlazor() extension method on FirestoreBuilder for service registration.
- No dependency on FireForNet.Firebase.Firestore.Browser — references core Firestore package directly.
- JS modules are identical to the Browser package (shared ES module exports).