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';
|
import '../models/user_model.dart';
|
||||||
|
|
||||||
class AuthService {
|
class AuthService {
|
||||||
Observable<UserModel> user;
|
final _user = BehaviorSubject<FirebaseUser>();
|
||||||
|
|
||||||
|
Observable<FirebaseUser> get userStream => _user.stream;
|
||||||
|
|
||||||
AuthService() {
|
AuthService() {
|
||||||
_googleSignInProvider.onAuthStateChange.listen(onUserChanged);
|
_googleSignInProvider.onAuthStateChange.pipe(_user);
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> onUserChanged(FirebaseUser firebaseUser) async {
|
|
||||||
if (firebaseUser == null) {
|
|
||||||
user = null;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
user = _firestoreProvider.getUser(firebaseUser.email);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final _googleSignInProvider = GoogleSignInProvider();
|
final _googleSignInProvider = GoogleSignInProvider();
|
||||||
|
|
@ -45,6 +39,10 @@ class AuthService {
|
||||||
Future<void> signOut() {
|
Future<void> signOut() {
|
||||||
return _googleSignInProvider.signOut();
|
return _googleSignInProvider.signOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dispose() {
|
||||||
|
_user.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final authService = AuthService();
|
final authService = AuthService();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue