A complete Flutter notes application with Firebase Authentication and Cloud Firestore integration using Provider for state management.
- Separate Authentication Screens: Dedicated Sign In and Sign Up screens
- Firebase Authentication: Email/Password signup and login with comprehensive validation
- Real-time CRUD Operations: Create, Read, Update, Delete notes with instant UI updates
- Provider State Management: Clean architecture eliminating all setState() calls
- Real-time Firestore Sync: Live data synchronization with Firestore database
- Input Validation: Comprehensive form validation with specific error messages
- User Feedback: Color-coded SnackBar notifications (green success, red error)
- Clean UI: Material Design 3 with responsive layouts and polished Cards
- Session Persistence: User stays logged in across app restarts
- Error Handling: Comprehensive error handling for all operations
This project follows clean architecture principles with complete separation of concerns:
- Firebase Project: Created at Firebase Console
- Authentication: Email/Password provider enabled
- Firestore Database: Created with proper security rules
- Firestore Indexes: Required for real-time queries
- Platform Configuration:
android/app/google-services.json(Android)firebase_options.dart(Generated via FlutterFire CLI)
- Flutter SDK (latest stable)
- Firebase CLI
- FlutterFire CLI
-
Clone the repository
git clone [your-repo-url] cd flutter-notes-app-firebase -
Install dependencies
flutter pub get
-
Firebase Configuration
npm install -g firebase-tools dart pub global activate flutterfire_cli flutterfire configure
-
Firestore Indexes Setup CRITICAL STEP
firebase login firebase init firestore
-
Run the application
flutter run
- Create:
await addNote(text, userId)- Instant UI update via stream - Read:
startListeningToNotes(userId)- Real-time streaming - Update:
await updateNote(noteId, text)- Immediate reflection - Delete:
await deleteNote(noteId)- Real-time removal
- User Data Isolation: Notes secured by userId
- Authentication Required: All operations require valid auth
- Firestore Rules: Server-side security enforcement
- Input Validation: Client-side data sanitization
- Error Information: Sensitive details not exposed to users
Educational project - ALU Individual Assignment 2
