import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:flutter/material.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:prosappco/src/models/scores_model.dart'; import 'package:prosappco/src/models/user_model.dart'; class UserProvider extends ChangeNotifier { final FirebaseFirestore _firestore = FirebaseFirestore.instance; UserModel? _user; ScoresModel? _score; UserProvider() { initUserProvider(); } void initUserProvider() { var uid = FirebaseAuth.instance.currentUser?.uid; if (uid == null) return; final stream = _firestore.collection('users').doc(uid).snapshots(); stream.listen((documentSnapshot) async { if (documentSnapshot.exists) { final data = documentSnapshot.data() as Map; _user = UserModel.fromFirestore(data); _score = await ScoresModel.scoreTo(uid, false, false); notifyListeners(); } }, onDone: () { print("Task Done"); }, onError: (error) { print("Some Error"); }); } UserModel? get user => _user; ScoresModel? get score => _score; }