diff --git a/lib/core/services/firebase_service.dart b/lib/core/services/firebase_service.dart new file mode 100644 index 0000000..24d4fb0 --- /dev/null +++ b/lib/core/services/firebase_service.dart @@ -0,0 +1,27 @@ +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:flutter/foundation.dart'; + +class FirebaseService { + Future initializeApp() async { + if (kIsWeb) { + await Firebase.initializeApp( + options: const FirebaseOptions( + apiKey: 'AIzaSyCTjdsk2jE34IfnvSKP1JMTIf_Abd7tbt0', + authDomain: 'opplens-270d1.firebaseapp.com', + projectId: 'opplens-270d1', + storageBucket: 'opplens-270d1.firebasestorage.app', + messagingSenderId: '6923326255', + appId: '1:6923326255:web:c71763ece06aaaf3ed87da', + measurementId: 'G-M5HQR4YZVS', + ), + ); + final FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance; + await firebaseMessaging.requestPermission(); + } else { + await Firebase.initializeApp(); + final FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance; + await firebaseMessaging.requestPermission(); + } + } +} diff --git a/lib/core/services/messaging_service.dart b/lib/core/services/messaging_service.dart deleted file mode 100644 index d39da55..0000000 --- a/lib/core/services/messaging_service.dart +++ /dev/null @@ -1,14 +0,0 @@ -import 'package:firebase_messaging/firebase_messaging.dart'; - -import 'package:logger/logger.dart'; - -class MessagingService { - //create an instance of firebase messaging - final _firebaseMessaging = FirebaseMessaging.instance; - - Future initNotifications() async { - await _firebaseMessaging.requestPermission(); - final fcmToken = await _firebaseMessaging.getToken(); - Logger().i('FCMToken: $fcmToken'); - } -} diff --git a/lib/data/services/auth_service.dart b/lib/data/services/auth_service.dart index 3a62ee1..7a3d5e9 100644 --- a/lib/data/services/auth_service.dart +++ b/lib/data/services/auth_service.dart @@ -2,6 +2,7 @@ import 'dart:convert'; +import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tm_app/core/utils/logger.dart'; import 'package:tm_app/data/services/api/auth_api.dart'; @@ -24,7 +25,14 @@ class AuthService { required String username, required String password, }) async { - var data = jsonEncode({"password": password, "username": username}); + //get device fcm token + final FirebaseMessaging firebaseMessaging = FirebaseMessaging.instance; + final fcmToken = await firebaseMessaging.getToken(); + var data = jsonEncode({ + "password": password, + "username": username, + "device_token": fcmToken ?? '', + }); final result = await _networkManager.makeRequest( AuthApi.login, diff --git a/lib/main.dart b/lib/main.dart index 3380f0d..4107ecd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,19 +1,16 @@ // main.dart import 'dart:ui'; -import 'package:firebase_core/firebase_core.dart'; -import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:logger/logger.dart'; import 'package:provider/provider.dart'; import 'package:provider/single_child_widget.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tm_app/core/config/dependencies.dart'; import 'package:tm_app/core/config/web_url_strategy.dart'; import 'package:tm_app/core/services/cache_init.dart'; -import 'package:tm_app/core/services/messaging_service.dart'; +import 'package:tm_app/core/services/firebase_service.dart'; import 'package:tm_app/core/theme/theme_provider.dart'; import 'core/routes/app_routes.dart'; @@ -43,26 +40,7 @@ void main() async { // Configure web URL strategy if running on web configureWebUrlStrategy(); - if (kIsWeb) { - await Firebase.initializeApp( - options: const FirebaseOptions( - apiKey: 'AIzaSyCTjdsk2jE34IfnvSKP1JMTIf_Abd7tbt0', - authDomain: 'opplens-270d1.firebaseapp.com', - projectId: 'opplens-270d1', - storageBucket: 'opplens-270d1.firebasestorage.app', - messagingSenderId: '6923326255', - appId: '1:6923326255:web:c71763ece06aaaf3ed87da', - measurementId: 'G-M5HQR4YZVS', - ), - ); - final _firebaseMessaging = FirebaseMessaging.instance; - await _firebaseMessaging.requestPermission(); - final fcmToken = await _firebaseMessaging.getToken(); - Logger().i('FCMToken: $fcmToken'); - } else { - await Firebase.initializeApp(); - await MessagingService().initNotifications(); - } + await FirebaseService().initializeApp(); runApp(MultiProvider(providers: providers, child: const MyApp())); } diff --git a/lib/view_models/tenders_view_model.dart b/lib/view_models/tenders_view_model.dart index e4d9de8..126cf24 100644 --- a/lib/view_models/tenders_view_model.dart +++ b/lib/view_models/tenders_view_model.dart @@ -130,10 +130,8 @@ class TendersViewModel with ChangeNotifier { } if (_tendersResponse?.meta?.pages != null) { _totalPages = _tendersResponse!.meta!.pages!; - print('Total pages: $_totalPages'); } else { _totalPages = 1; - print('Total pages not available, fallback to 1'); } notifyListeners(); break;