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

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

FireForNet.Firebase.Firestore.Sqlite

Platform-agnostic SQLite persistence 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 SQLite-backed ILocalStore and ITargetDataStore implementations for the Firestore offline cache. It contains no platform-specific code; native platform integrations chain over it and resolve the database path for their platform.

Installation

dotnet add package FireForNet.Firebase.Firestore.Sqlite

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

Usage

builder.Services.AddFirestore().UseSqlite(databasePath);

Most apps receive this package transitively through the Firestore MAUI, Windows, Android, or Apple integrations.

Package Purpose
FireForNet.Firebase.Firestore.Maui .NET MAUI integration (delegates to this package)
FireForNet.Firebase.Firestore.Windows Windows desktop integration (delegates to this package)
FireForNet.Firebase.Firestore.Android Native (non-MAUI) Android integration (delegates to this package)
FireForNet.Firebase.Firestore.Apple Apple native integration (delegates to this package)

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

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

Package Downloads
FireForNet.Firebase.Firestore.Windows

Package Description

FireForNet.Firebase.Firestore.Android

Package Description

FireForNet.Firebase.Firestore.Apple

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1-preview.22 61 9/27/2026
1.0.1-preview.21 66 9/22/2026
1.0.1-preview.20 65 9/18/2026

v1.0.1-preview.22
- BREAKING: the mutation-batch state column stores canonical strings ("queued"/"sent"/"acknowledged"/"rejected") instead of integer ordinals. Complete pending offline writes before upgrading.

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: SqliteLocalStore now implements ILocalStoreMutationQueue and ILocalStoreOverlayCache via SqliteLocalStore.Mutations.cs partial, storing mutation_batches, document_overlays, and mutation_queues tables in the same SQLite database. Enables offline writes to survive app restart.
- 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
- Updated to depend on FireForNet.Firebase.Firestore 1.0.1-preview.12, which fixes ObjectDisposedException on SemaphoreSlim.Release() during network disable and UnobservedTaskException from WebChannel receive-loop exceptions during concurrent disposal.

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

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 SQLITE_FULL (disk-full) handling: RunAsync detects Result.Full, maps to FirestoreErrorCode.LocalCacheFull; write methods catch, evict via CollectGarbageAsync, retry once, surface SqliteFirestoreException(LocalCacheFull) if eviction cannot recover.
- Added RunInTransactionSafe wrapper that preserves the original SQLITE_FULL exception through rollback failures (sqlite-net RunInTransaction masks the original exception with the rollback exception).
- Replaced all db.RunInTransaction calls with RunInTransactionSafe in DeleteDocumentAsync, RemoveIndexAsync, and EvictOldestNonPending to prevent rollback-masking of SQLITE_FULL.
- Split SqliteLocalStore into partial classes by interface concern (Documents, Indexes, Cache) for SRP and maintainability.
- SqliteFirestoreException 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.

v1.0.0-preview8
- Renamed the index-removal operation to ILocalStoreIndexManagement.RemoveIndexAsync.
- Switched to the shared public FieldIndexValueEncoder and FieldPathHelper for field-index encoding parity with the IndexedDB store.

v1.0.0-preview7
- Implemented plan-based QueryCandidatesAsync with scoped candidate retrieval, primary-key __name__ lookup, lazy persistent scalar-field equality candidate indexes, and evaluator-aligned equality prefiltering.
- Mandatory final LocalQueryEvaluator execution for Firestore semantic correctness.

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

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

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.