connectToAuthService method
Future<void>
connectToAuthService({
- AuthServiceInt? authService,
- Future<
void> onAuthenticated(- String? uid
- Future<
void> onAboutToLogOut()?,
override
Legacy auth wiring. FCM-068/BEH-21: this path registers only
handleAuthenticated/handleAboutToLogOut and wires NO onLoggedOut
callback, so legacy consumers should ALSO register
handleLoggedOut as an onLoggedOut callback on their AuthService to get
the cached-marker reset on logout (BEH-21 is otherwise scoped to the
DreamicServices wiring, which registers it automatically).
Implementation
@override
Future<void> connectToAuthService({
AuthServiceInt? authService,
Future<void> Function(String? uid)? onAuthenticated,
Future<void> Function()? onAboutToLogOut,
}) async {
logv('DeviceService: connectToAuthService called');
// Resolve auth service if not provided
AuthServiceInt? resolvedAuthService = authService;
if (resolvedAuthService == null) {
try {
resolvedAuthService = g<AuthServiceInt>();
} catch (e) {
logw('DeviceService: AuthServiceInt not registered in GetIt, cannot connect: $e');
return;
}
}
// Remove old callbacks if already connected (idempotency)
if (_isConnectedToAuthService && _authService != null) {
logv('DeviceService: Removing existing callbacks before reconnecting');
_disconnectFromAuthService();
}
_authService = resolvedAuthService;
// Create callback wrappers with default behavior
_registeredOnAuthenticatedCallback = onAuthenticated ?? _defaultOnAuthenticated;
_registeredOnAboutToLogOutCallback = onAboutToLogOut ?? _defaultOnAboutToLogOut;
// Register callbacks
_authService!.addOnAuthenticatedCallback(_registeredOnAuthenticatedCallback!);
_authService!.addOnAboutToLogOutCallback(_registeredOnAboutToLogOutCallback!);
_isConnectedToAuthService = true;
// Also connect to lifecycle service for automatic resume updates
_connectToLifecycleService();
logd('DeviceService: Connected to AuthService and lifecycle');
}