From ded5516bb1b952dd91631ac603a2dcfb4a9b120a Mon Sep 17 00:00:00 2001 From: efrilm Date: Fri, 29 May 2026 21:56:46 +0700 Subject: [PATCH] update --- lib/application/auth/login_form/login_form_bloc.dart | 9 ++------- lib/common/utils/fcm_service.dart | 10 +++++++++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/application/auth/login_form/login_form_bloc.dart b/lib/application/auth/login_form/login_form_bloc.dart index e7e0b25..3ef24dc 100644 --- a/lib/application/auth/login_form/login_form_bloc.dart +++ b/lib/application/auth/login_form/login_form_bloc.dart @@ -43,13 +43,8 @@ class LoginFormBloc extends Bloc { if (emailValid && passwordValid) { // Ambil device info dan FCM token secara paralel - final results = await Future.wait([ - _deviceInfoService.getDeviceInfo(), - _fcmService.getToken(), - ]); - - final deviceInfo = results[0] as DeviceInfo; - final fcmToken = results[1] as String?; + final deviceInfo = await _deviceInfoService.getDeviceInfo(); + final fcmToken = await _fcmService.getToken(); failureOrAuth = await _repository.login( email: state.email, diff --git a/lib/common/utils/fcm_service.dart b/lib/common/utils/fcm_service.dart index f7c4f1c..a98a5d9 100644 --- a/lib/common/utils/fcm_service.dart +++ b/lib/common/utils/fcm_service.dart @@ -194,7 +194,15 @@ class FcmService { } /// Returns the FCM registration token for this device. - Future getToken() => _messaging.getToken(); + /// Returns null if token is unavailable (e.g. simulator, APNs not ready). + Future getToken() async { + try { + return await _messaging.getToken(); + } catch (e) { + debugPrint('[FCM] getToken failed: $e'); + return null; + } + } /// Subscribe to a topic (e.g. 'all', 'promo'). Future subscribeToTopic(String topic) =>