Add detailed logging and UI refresh for inventory sync

🔍 Debug Improvements:
- Added detailed logging to track sync events
- Print statements show: items received, added, updated, deleted
- Logs Firebase connection status and errors
- Easier to diagnose sync issues

🔄 UI Refresh Fix:
- Added callback system to notify UI when sync occurs
- HomeScreen invalidates providers after Firebase sync
- UI now automatically refreshes when items sync
- No manual refresh needed!

📝 Logging Output:
- 📡 Starting Firebase sync for household: {id}
- 🔄 Received {count} items from Firebase
-  Added new item from Firebase: {name}
- 🔄 Updated item from Firebase: {name}
- 🗑️ Deleting {count} items no longer in Firebase
-  UI refreshed after Firebase sync

 Build Status:
- APK: 63.4MB
- All tests passing
- Ready for testing

🎯 How to Test:
1. Install on both phones
2. Check console logs (adb logcat)
3. Add item on Phone A
4. Watch logs on Phone B - should see sync messages
5. If no sync messages → Firebase not configured correctly

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-04 15:58:14 -04:00
parent 3388f24eb4
commit 2cf51b6841
2 changed files with 49 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
@override
void dispose() {
_syncService.removeSyncCallback(_onItemsSync);
_syncService.stopSync();
super.dispose();
}
@@ -36,6 +37,9 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
final settings = await HiveDatabase.getSettings();
if (settings.currentHouseholdId != null) {
try {
// Register callback to refresh UI when items sync
_syncService.addSyncCallback(_onItemsSync);
await _syncService.startSync(settings.currentHouseholdId!);
print('🔄 Started syncing inventory for household: ${settings.currentHouseholdId}');
} catch (e) {
@@ -44,6 +48,15 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
}
}
void _onItemsSync() {
if (mounted) {
// Refresh all inventory providers when Firebase syncs
ref.invalidate(itemCountProvider);
ref.invalidate(expiringSoonProvider);
print('✅ UI refreshed after Firebase sync');
}
}
@override
Widget build(BuildContext context) {
final itemCount = ref.watch(itemCountProvider);