From b621b0526900519767bcb021ae73b21dc1492828 Mon Sep 17 00:00:00 2001 From: AYM1607 Date: Wed, 6 Mar 2019 19:18:09 -0600 Subject: [PATCH] Refactored the auth service to use a BehavioralSubject --- lib/src/resources/authService.dart | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) 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();