:firebase:firestore
This module provides cloud data storage using Firebase Firestore. It handles data synchronization, real-time updates, and offline persistence.
Features
Cloud Data Storage
Real-time Updates
Offline Persistence
Batch Operations
Security Rules Integration
Data Serialization
Dependencies Graph
Usage
dependencies {
implementation(project(":firebase:firestore"))
}Data Operations
class FirestoreDataSource @Inject constructor(
firestore: FirebaseFirestore
) {
private val collection = firestore
.collection("your_collection")
suspend fun getData(userId: String): List<Data> =
collection
.whereEqualTo("userId", userId)
.get()
.await()
.toObjects()
suspend fun createData(data: Data) =
collection
.document(data.id)
.set(data)
.await()
}Security Rules
The module expects proper Firestore security rules to be set up. Here's a basic example:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}!NOTE For complete Firestore setup and production-ready security rules examples, see the ../../docs/firebase.md#firestore-security-rules.
All operations are performed with proper security context and error handling.
Setup
!NOTE For Firebase Firestore setup instructions, including enabling Firestore in the Firebase Console and configuring security rules, see the ../../docs/firebase.md.
Related Documentation
../../docs/firebase.md - Complete Firebase Console and Firestore setup
../../docs/troubleshooting.md - Firebase Firestore issues and solutions
Firestore Security Rules - Official Firebase security rules documentation