У меня есть простой класс под названием UserProvider, который прослушивает поток пользователя при инициализации, а затем обновляет переменную currentUser
до значения, полученного из потока.
Проблема в том, по какой-то странной причине, когда Я установил для currentUser значение, полученное из потока, оно не обновляется в классе. Обновляется только методом userStream.listen
.
Как это исправить?
class UserProvider extends ChangeNotifier {
User currentUser;
UserProvider() {
this.listenToUserStream();
}
void listenToUserStream() {
FirebaseAuth.instance.onAuthStateChanged.listen((FirebaseUser firUser) {
if (firUser != null) {
Stream<User> userStream = UserService().getUserInfoAsStream();
userStream.listen((event) {
this.currentUser = event;
print(currentUser); // prints instance of User;
notifyListeners();
});
} else {
this.currentUser = null;
}
print(currentUser); // prints null;
notifyListeners();
});
}
}