Files
Sage/lib/main.dart
Dani f5ab5f0449 Add Firebase cloud sync for household sharing v1.1.0
 New Features:
- Firebase Firestore integration for real-time household sharing
- Create household → generates code stored in cloud
- Join household → looks up code from Firebase across devices
- Leave household → updates member list in cloud
- Cloud-first with local Hive fallback for offline

🔧 Technical Implementation:
- Added firebase_core and cloud_firestore dependencies
- Created FirebaseHouseholdService for all cloud operations
- Updated HouseholdScreen to use Firebase for create/join/leave
- Modified gradle files to support Google Services plugin
- Increased minSdk to 21 for Firebase compatibility
- Version bumped to 1.1.0+2 (MAJOR.MINOR.BUGFIX)

📁 New Files:
- lib/features/household/services/firebase_household_service.dart
- FIREBASE_SETUP.md - Complete setup instructions
- android/app/google-services.json - Placeholder (needs replacement)
- android/app/README_FIREBASE.md - Firebase config reminder

⚙️ Setup Required:
1. Create Firebase project at console.firebase.google.com
2. Add Android app with package name: com.sage.sage
3. Download real google-services.json
4. Enable Firestore Database in test mode
5. See FIREBASE_SETUP.md for complete instructions

🎯 How it works:
- Device A creates household → stored in Firestore
- Device B joins with code → reads from Firestore
- Both devices now share same household ID
- Inventory items sync via shared household ID

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 14:59:34 -04:00

39 lines
934 B
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:firebase_core/firebase_core.dart';
import 'core/constants/app_theme.dart';
import 'data/local/hive_database.dart';
import 'features/home/screens/home_screen.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Initialize Firebase
await Firebase.initializeApp();
// Initialize Hive database
await HiveDatabase.init();
runApp(
const ProviderScope(
child: SageApp(),
),
);
}
class SageApp extends StatelessWidget {
const SageApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Sage 🌿',
debugShowCheckedModeBanner: false,
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme,
themeMode: ThemeMode.light, // We'll make this dynamic later
home: const HomeScreen(),
);
}
}