Implement Firestore database connector with complete CRUD operations and interface abstraction #28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements a comprehensive Firestore connector for the AIChatBot API project, providing a complete alternative to Entity Framework Core for data storage and retrieval. The implementation enables seamless switching between SQL Server and Google Cloud Firestore with zero API changes.
🚀 Key Features
Complete CRUD Operations
User,ChatSession,ChatMessage,AgentFile,AIModel,ChatMode, andAIModelChatModeInterface Abstraction
Production-Ready Configuration
{ "FirestoreSettings": { "ProjectId": "your-firestore-project-id", "CredentialsPath": "/path/to/service-account-key.json", "DatabaseId": "(default)", "UseEmulator": false, "EmulatorHost": "localhost:8080" } }🏗️ Architecture
Core Components
BaseFirestoreRepository: Common operations pattern for code reuse and consistencyFirestoreFactory: Centralized database connection management with emulator support[FirestoreProperty]attributesEntity Mapping Example
🔄 Easy Implementation Switching
Switch between Entity Framework and Firestore by uncommenting service registrations in
Program.cs:📊 Comprehensive Testing
Added complete unit test project (
AIChatBot.Tests) with:📚 Documentation
FIRESTORE_CONNECTOR.md: Complete setup and usage guide🛠️ Technical Implementation
Dependencies Added
Google.Cloud.Firestore(v3.8.0) for .NET SDKCollections Structure
userschatSessionschatMessagesagentFilesError Handling & Logging
🎯 Business Benefits
✅ Validation
This implementation provides a robust, scalable alternative to SQL Server while maintaining complete backward compatibility with the existing codebase.
Fixes #27.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.