FireForNet.Firebase.Firestore 1.0.1-preview.12

Prefix Reserved
This is a prerelease version of FireForNet.Firebase.Firestore.
dotnet add package FireForNet.Firebase.Firestore --version 1.0.1-preview.12
                    
NuGet\Install-Package FireForNet.Firebase.Firestore -Version 1.0.1-preview.12
                    
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" Version="1.0.1-preview.12" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FireForNet.Firebase.Firestore" Version="1.0.1-preview.12" />
                    
Directory.Packages.props
<PackageReference Include="FireForNet.Firebase.Firestore" />
                    
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 --version 1.0.1-preview.12
                    
#r "nuget: FireForNet.Firebase.Firestore, 1.0.1-preview.12"
                    
#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@1.0.1-preview.12
                    
#: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&version=1.0.1-preview.12&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FireForNet.Firebase.Firestore&version=1.0.1-preview.12&prerelease
                    
Install as a Cake Tool

FireForNet.Firebase.Firestore

Cloud Firestore for FireForNet.

This package provides typed document and collection references, queries, listeners, batches, transactions, bundles, local-store contracts, and the default WebChannel-capable transport.

builder.Services.AddFirestore();

Use platform integrations for browser, native gRPC, SQLite persistence, MAUI, or Windows setup.

Docs: https://github.com/FireForNet/FireForNet

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 (2)

Showing the top 2 NuGet packages that depend on FireForNet.Firebase.Firestore:

Package Downloads
FireForNet.Firebase.Firestore.Browser

Package Description

FireForNet.Firebase.Firestore.Blazor

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1-preview.12 44 7/9/2026
1.0.1-preview.11 75 6/29/2026
1.0.1-preview.10 67 6/25/2026
1.0.1-preview.9 76 6/24/2026
1.0.1-preview.8 70 6/23/2026
1.0.1-preview.7 69 6/9/2026
1.0.1-preview.6 74 6/8/2026
1.0.1-preview.5 78 6/8/2026
1.0.1-preview.4 83 6/8/2026
1.0.1-preview.3 62 6/8/2026
1.0.1-preview.2 67 6/8/2026
1.0.1-preview.1 65 6/8/2026
1.0.0-preview9 71 6/2/2026
1.0.0-preview8 76 5/31/2026
1.0.0-preview7 75 5/26/2026
1.0.0-preview6 69 5/25/2026
1.0.0-preview5 68 5/24/2026
1.0.0-preview4 84 5/24/2026
1.0.0-preview3 72 5/24/2026
1.0.0-preview10 63 6/8/2026
Loading failed

v1.0.1-preview.12
- Fixed ObjectDisposedException on SemaphoreSlim.Release() during network disable. A race between DisableNetworkAsync and the fire-and-forget watch-stream receive loop allowed the stream to be restarted on a disposed PersistentListenStream after _gate had been disposed. RemoteStore now atomically guards ShouldStartWatchStream with _networkEnabled, and the PersistentListenStream start path detects disposed state before acquiring the gate.
- Fixed UnobservedTaskException caused by OperationCanceledException escaping the WebChannel receive loop during concurrent disposal. The receive loop now catches JSException wrapping OperationCanceledException (surfaced by .NET 10 WASM fetch abort), and HandleStreamErrorAsync is defensive against ObjectDisposedException when CloseInternalAsync races with DisposeAsync.

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

v1.0.1-preview.10
- Fixed "Cursor has too many values" (HTTP 400 INVALID_ARGUMENT) error on server queries using snapshot cursors (StartAt/StartAfter/EndAt/EndBefore with IDocumentSnapshot). Query.BuildStructuredQuery now emits normalized order-bys (explicit + implicit inequality fields + __name__ last) and serializes __name__ cursor values as ReferenceValue instead of plain string.
- Added QueryNormalizer helper centralizing the normalized order-by algorithm shared by server and local cache query paths.
- Added field-cursor validation: StartAt/StartAfter/EndAt/EndBefore(params object[]) now throw FirestoreException(InvalidArgument) when values exceed the explicit orderBy count.
- Refactored LocalQueryEvaluator to reuse QueryNormalizer, removing duplicated normalization logic.

v1.0.1-preview.9
- Fixed Timestamp to register a default JsonConverter via [JsonConverter(typeof(TimestampJsonConverter))], so System.Text.Json serialization works without an explicit user-supplied converter.
- Fixed TimestampJsonConverter.Read to handle both Firestore wire-format fields (_seconds/_nanoseconds) and the FireForNet serialized format (seconds/nanoseconds), ensuring round-trip deserialization from emulator and production responses.

v1.0.1-preview.8
- Added FirestoreErrorCode.LocalCacheFull (104) for client-side persistence cache-at-capacity errors.
- FirestoreException now extends FirebaseCoreException<FirestoreErrorCode>; MapToCoreCode deleted.
- ExceptionHelper.MapToFirestoreException is now one-way only (no reverse round-trip).

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 browser-interop-migration release.

v1.0.0-preview8
- Promoted FieldIndexValueEncoder and FieldPathHelper to public Firestore API so persistence backends share identical field-index encoding without internal-visibility coupling.
- Renamed ILocalStoreIndexManagement.DeleteIndexAsync to RemoveIndexAsync.
- Firestore now throws FirestoreErrorCode.FailedPrecondition when persistence is enabled with a cache size limit but the active local store does not implement ILocalStoreCacheManagement.
- Hardened InMemoryLocalStore multi-document ApplyChangesAsync atomicity under a single lock so concurrent reads never observe a partially applied batch.

v1.0.0-preview7
- Reworked local cache architecture with plan-based candidate retrieval through LocalQueryPlan, LocalQueryExecutor, and LocalQueryPlanner.
- Replaced broad ILocalStore.QueryAsync contract with QueryCandidatesAsync so stores return safe candidate supersets and Core Firestore remains the semantic authority.
- Added SQLite equality pushdown for supported scalar fields as a proven candidate-reduction path with mandatory final LocalQueryEvaluator execution.
- Collection path, collection group, and document path narrowing with broad-scan fallback across all stores.

v1.0.0-preview6
- Improved local cache query evaluation for cursor bounds, snapshot cursor document-name tie-breakers, and special numeric values.

v1.0.0-preview5
- Fixed Blazor WebAssembly startup crash when IFirestore is resolved early by flowing Google.Protobuf as a runtime package dependency while keeping its compile assets private to Firestore.

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.