| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import 'package:firebase_core/firebase_core.dart';
- import 'package:flutter/material.dart';
- import 'package:latlong2/latlong.dart';
- import 'navigation/navigation_page.dart';
- import 'challenges/challenge_page.dart';
- import 'package:firebase_messaging/firebase_messaging.dart';
- import 'package:cloud_firestore/cloud_firestore.dart';
- import 'firebase_options.dart';
- void main() async {
- WidgetsFlutterBinding.ensureInitialized();
- await Firebase.initializeApp(
- options: DefaultFirebaseOptions.currentPlatform,
- );
- handleMessages();
- runApp(const PhysiGo());
- }
- class PhysiGo extends StatelessWidget {
- const PhysiGo({Key? key}) : super(key: key);
- @override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'PhysiGo',
- theme: ThemeData(
- primarySwatch: Colors.blue,
- ),
- home: const HomePage(),
- );
- }
- }
- class HomePage extends StatelessWidget {
- const HomePage({Key? key}) : super(key: key);
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- body: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [Center(
- child: TextButton(
- onPressed: () {
- Navigator.push(
- context,
- MaterialPageRoute(
- // Example on how to use NavigationPage
- builder: (context) => NavigationPage(
- destination: LatLng(51.78036111980833, 19.451262207821234),
- ),
- ),
- );
- },
- child: const Text('Navigation')),
- ),
- Center(
- child: TextButton(
- onPressed: () {
- Navigator.push(
- context,
- MaterialPageRoute(
- // Example on how to use NavigationPage
- builder: (context) => const ChallengePage(),
- ),
- );
- },
- child: const Text('Challenges')),
- ),
- ],
- ));
- }
- }
- void handleMessages() async {
- FirebaseMessaging messaging = FirebaseMessaging.instance;
- final _firestore = FirebaseFirestore.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}');
- }
- });
- messaging.onTokenRefresh.listen((fcmToken) async {
- final fcmToken = await messaging.getToken();
- final user = _firestore.collection('Users').doc('tlmysIvwTBaoZKWqBofx');
- user.update({
- 'token': fcmToken,
- });
- });
- }
|