provider fix
This commit is contained in:
@@ -1,28 +1,39 @@
|
||||
// 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() {
|
||||
_loadUser();
|
||||
}
|
||||
var uid = FirebaseAuth.instance.currentUser?.uid;
|
||||
print("$tag uid=$uid");
|
||||
if (uid == null) return;
|
||||
|
||||
Future<void> _loadUser() async {
|
||||
final documentSnapshot = await _firestore
|
||||
.collection('users')
|
||||
.doc(FirebaseAuth.instance.currentUser?.uid)
|
||||
.get();
|
||||
|
||||
if (documentSnapshot.exists) {
|
||||
final data = documentSnapshot.data() as Map<String, dynamic>;
|
||||
_user = UserModel.fromFirestore(data);
|
||||
notifyListeners();
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user