flutter-firebase
Firebase Setup
- Use
firebase_corefor initialization — callFirebase.initializeApp()beforerunApp() - Use
flutterfire configurefor platform-specific setup - Use separate Firebase projects per flavor (see
app-configskill) - Register Firebase services via
injectablefor consistent DI
Authentication
- Use
firebase_authfor user management - Wrap all auth calls in an
AuthRepository— no directFirebaseAuthusage in BLoCs or UI - Support email/password, Google Sign-In, and Apple Sign-In at minimum
- Handle auth state changes via
FirebaseAuth.instance.authStateChanges()stream inAuthBloc - Store auth tokens via
flutter_secure_storage— never inSharedPreferencesor source code - Implement proper sign-out: clear local cache, navigate to login, dispose user-specific BLoCs
Firestore
- Use
cloud_firestorefor remote data persistence
More from dhruvanbhalara/skills
flutter-ui
Build performant, accessible UIs with strict design tokens and reusable widget patterns. Use when implementing layouts, responsive breakpoints, theming, widget extraction, or fixing common rendering issues like overflow errors.
177flutter-dio
Implement HTTP networking with Dio including interceptors, retry logic, and response caching. Use when building API clients, configuring authentication headers, or handling network errors gracefully.
141flutter-security
Enforce architect-level security standards including AES-256-GCM encryption, secure storage, biometric gates, and memory safety. Use when handling sensitive data, credentials, clipboard content, or API communication security.
139flutter-architecture
Enforce Clean Architecture with BLoC pattern for Flutter applications. Use when scaffolding features, structuring data/domain/presentation layers, defining data models, or integrating native platform channels.
137flutter-debugging
Debug and profile Flutter applications using DevTools, structured logging, and memory analysis. Use when diagnosing layout issues, tracking performance bottlenecks, or setting up centralized error reporting with Crashlytics.
133flutter-bloc
Implement state management using the BLoC/Cubit pattern with injectable dependency injection. Use when creating new BLoCs, managing UI state transitions, or configuring navigation with GoRouter.
119