Files
prosappco/lib/src/providers/user_provider.dart
T
2023-11-01 13:06:49 -05:00

40 lines
1.2 KiB
Dart

// ignore_for_file: avoid_print
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;
final tag = "UserProvider";
UserModel? _user;
ScoresModel? _score;
UserProvider() {
var uid = FirebaseAuth.instance.currentUser?.uid;
print("$tag uid=$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<String, dynamic>;
_user = UserModel.fromFirestore(data);
_score = await ScoresModel.scoreTo(uid, false, false);
print("$tag _user=$_user");
print("$tag _score=$_score");
notifyListeners();
}
}, onDone: () {
print("Task Done");
}, onError: (error) {
print("Some Error");
});
}
UserModel? get user => _user;
ScoresModel? get score => _score;
}