Refactored the auth service to use a BehavioralSubject
This commit is contained in:
parent
0e1c1a4f33
commit
b621b05269
1 changed files with 8 additions and 10 deletions
|
|
@ -8,18 +8,12 @@ import '../models/summary_model.dart';
|
|||
import '../models/user_model.dart';
|
||||
|
||||
class AuthService {
|
||||
Observable<UserModel> user;
|
||||
final _user = BehaviorSubject<FirebaseUser>();
|
||||
|
||||
Observable<FirebaseUser> get userStream => _user.stream;
|
||||
|
||||
AuthService() {
|
||||
_googleSignInProvider.onAuthStateChange.listen(onUserChanged);
|
||||
}
|
||||
|
||||
Future<void> 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<void> signOut() {
|
||||
return _googleSignInProvider.signOut();
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
_user.close();
|
||||
}
|
||||
}
|
||||
|
||||
final authService = AuthService();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue