From 967f0859b320b363fe0859ff8221c75e76383b44 Mon Sep 17 00:00:00 2001 From: Juan Felipe Duarte <70235683+DuarteJFelipe@users.noreply.github.com> Date: Wed, 21 Jun 2023 15:25:26 -0500 Subject: [PATCH] token --- lib/main.dart | 33 ++++++++++++++++++++++++++++++++ lib/src/screens/service.dart | 17 +++++++++++++++- lib/src/screens/solicitudes.dart | 8 ++++++++ pubspec.yaml | 2 +- 4 files changed, 58 insertions(+), 2 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index b64bfc5..0adf4a0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -23,12 +23,45 @@ import 'package:prosappco/src/screens/service.dart'; import 'package:prosappco/src/screens/solicitudes.dart'; import 'package:prosappco/src/services/local_notifications.dart'; import 'firebase_options.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; + +Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { + await Firebase.initializeApp(); + + print('Handling a backdround message: ${message.messageId}'); +} void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ).then((value) => Get.put(AuthenticationRepository())); + + FirebaseMessaging.onBackgroundMessage((_firebaseMessagingBackgroundHandler)); + + FirebaseMessaging messaging = FirebaseMessaging.instance; + + NotificationSettings settings = await messaging.requestPermission( + alert: true, + announcement: false, + badge: true, + carPlay: false, + criticalAlert: false, + provisional: false, + sound: true, + ); + + FirebaseMessaging.onMessage.listen((RemoteMessage message) { + print('Got a message whilst in the foreground!'); + print('Message data: ${message.data}'); + + if (message.notification != null) { + print('Message also contained a notification: ${message.notification}'); + } + }); + + print('User granted permission: ${settings.authorizationStatus}'); + await initNotifications(); await initializeDateFormatting('es_MX', null); diff --git a/lib/src/screens/service.dart b/lib/src/screens/service.dart index eb2bb6f..e4b3f83 100644 --- a/lib/src/screens/service.dart +++ b/lib/src/screens/service.dart @@ -28,6 +28,21 @@ class ServiceScreen extends StatefulWidget { } class _ServiceScreenState extends State { + void _saveToken() async { + FirebaseMessaging messaging = FirebaseMessaging.instance; + + final token = await messaging.getToken(); + + try { + await FirebaseFirestore.instance + .collection('users') + .doc(uid) + .update({'token': token}); + } catch (e) { + print(e); + } + } + EventoService eventoService = EventoService(); String _locationPosition = ''; String ubicacion = ''; @@ -143,7 +158,7 @@ class _ServiceScreenState extends State { void initState() { super.initState(); - final userRef = FirebaseFirestore.instance.collection('users').doc(uid); + _saveToken(); if (user == null) { UserModel.getUser(uid.toString()).then( diff --git a/lib/src/screens/solicitudes.dart b/lib/src/screens/solicitudes.dart index 1e97e5c..8d21cbe 100644 --- a/lib/src/screens/solicitudes.dart +++ b/lib/src/screens/solicitudes.dart @@ -8,6 +8,14 @@ import 'package:prosappco/src/models/event_model.dart'; import 'package:prosappco/src/models/scores_model.dart'; import 'package:prosappco/src/screens/cita.dart'; +// class name extends StatelessWidget { +// const name({super.key}); + +// @override +// Widget build(BuildContext context) { +// return Container(); +// } +// } class SolicitudScreen extends StatefulWidget { SolicitudScreen({super.key}); diff --git a/pubspec.yaml b/pubspec.yaml index 32da15d..5776f25 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,12 +61,12 @@ dependencies: flutter_email_sender: ^5.2.0 webview_flutter: ^4.2.0 firebase_storage: ^11.2.2 - firebase_messaging: ^14.5.0 responsive_builder: ^0.7.0 flutter_local_notifications: ^14.1.1 http: ^0.13.5 flutter_dialogs: ^3.0.0 universal_html: ^2.2.3 + firebase_messaging: ^14.6.3 dev_dependencies: flutter_test: