diff --git a/lib/src/resources/authService.dart b/lib/src/resources/authService.dart index 6fb8219..7296939 100644 --- a/lib/src/resources/authService.dart +++ b/lib/src/resources/authService.dart @@ -8,18 +8,12 @@ import '../models/summary_model.dart'; import '../models/user_model.dart'; class AuthService { - Observable user; + final _user = BehaviorSubject(); + + Observable get userStream => _user.stream; AuthService() { - _googleSignInProvider.onAuthStateChange.listen(onUserChanged); - } - - Future onUserChanged(FirebaseUser firebaseUser) async { - if (firebaseUser == null) { - user = null; - return; - } - user = _firestoreProvider.getUser(firebaseUser.email); + _googleSignInProvider.onAuthStateChange.pipe(_user); } final _googleSignInProvider = GoogleSignInProvider(); @@ -45,6 +39,10 @@ class AuthService { Future signOut() { return _googleSignInProvider.signOut(); } + + void dispose() { + _user.close(); + } } final authService = AuthService();