NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
A comprehensive Flutter app auth manager package that provides authentication support.
Last release 1 years ago
30 Jun 2025
Too new to tell
only 1 release windows
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
7 releases · first in 2025
One column per month.
Removed redundant refreshAuthState() call during initialization: Firebase's authStateChanges() listener automatically emits the current auth state whe
authStateChanges() listener automatically emits the current auth state when it starts listening, so the manual refresh was causing duplicate state emissions and potential race conditions. This improves stream reliability and prevents misleading state changes.Improve error parameter passing
Undo initial stream event yield
Stream-based Authentication State: Enhanced authStateStream to properly emit current state for new subscribers
Update error message required parameter for auth state
Update error handling in authentication flows to display 'Unknown error' when error message is null
Core Authentication Interface: Abstract IAuthManager interface for dependency inversion
IAuthManager interface for dependency inversionAuthUserModel: Complete user profile information with provider dataAuthStateModel: Real-time authentication state managementAuthResultModel: Detailed operation results with success/failure statesAuthErrorModel: Comprehensive error handling with user-friendly messagesflutter_shared_utilities: ^1.0.5 - Type-safe data models and utilitiesfirebase_core: ^3.14.0 - Firebase core functionalityfirebase_auth: ^5.6.0 - Firebase authentication servicesgoogle_sign_in: ^6.3.0 - Google Sign-In integrationsign_in_with_apple: ^7.0.1 - Apple Sign-In integrationlocal_auth: ^2.3.0 - Biometric authentication supportcrypto: ^3.0.6 - Cryptographic utilities for secure operationsdart_jsonwebtoken: ^3.2.0 - JWT token handling and validationapp_logger_manager: ^1.0.2 - Comprehensive logging and debugginglib/
├── src/
│ ├── constants/
│ │ └── auth_constants.dart # Authentication constants
│ ├── interfaces/
│ │ └── i_auth_manager.dart # Abstract authentication interface
│ ├── models/
│ │ ├── auth_user_model.dart # User data model
│ │ ├── auth_state_model.dart # Authentication state model
│ │ ├── auth_result_model.dart # Operation result model
│ │ └── auth_error_model.dart # Error handling model
│ ├── implementations/
│ │ └── firebase_auth_manager.dart # Firebase implementation
│ └── mixin/
│ ├── auth_error_mixin.dart # Error handling utilities
│ ├── auth_mixin.dart # Core authentication utilities
│ ├── auth_provider_mixin.dart # Provider-specific utilities
│ └── auth_validation_mixin.dart # Validation utilities
└── app_auth_manager.dart # Main export file
example/
├── lib/
│ ├── main.dart # Main application entry
│ ├── auth_example_app.dart # App configuration
│ ├── pages/ # Application pages
│ ├── theme/ # App theming
│ └── widgets/ # Reusable widgets
├── android/ # Android configuration
├── ios/ # iOS configuration
└── firebase.json # Firebase configuration
// Initialize authentication manager using factory constructor
final authManager = await FirebaseAuthManager.create();
// Email/password authentication
final signUpResult = await authManager.signUpWithEmailAndPassword(
email: 'user@example.com',
password: 'securePassword123',
displayName: 'John Doe',
);
final signInResult = await authManager.signInWithEmailAndPassword(
email: 'user@example.com',
password: 'securePassword123',
);
// Social authentication
final googleResult = await authManager.signInWithGoogle();
final appleResult = await authManager.signInWithApple();
// Anonymous authentication
final anonymousResult = await authManager.signInAnonymously();
// State management
StreamBuilder<AuthStateModel>(
stream: authManager.authStateStream,
builder: (context, snapshot) {
final state = snapshot.data ?? AuthStateModel.initial();
return state.isAuthenticated
? HomePage(user: state.user!)
: LoginPage();
},
);
// Error handling
if (result.isFailure) {
final userMessage = authManager.getUserFriendlyErrorMessage(result.errorCode);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(userMessage)),
);
}
Your coding agent can read these notes before it upgrades. Set up the MCP server →