Merge branch 'g-login' into experiment

This commit is contained in:
Mariano Uvalle 2019-02-26 23:33:28 -06:00
commit e357a0892e
3 changed files with 103 additions and 28 deletions

View file

@ -2,6 +2,7 @@ import 'dart:async';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:rxdart/rxdart.dart';
class GoogleSignInProvider {
final GoogleSignIn _googleSignIn;
@ -11,18 +12,33 @@ class GoogleSignInProvider {
: _googleSignIn = googleSignIn ?? GoogleSignIn(),
_auth = firebaseAuth ?? FirebaseAuth.instance;
Observable<FirebaseUser> get onAuthStateChange =>
Observable(_auth.onAuthStateChanged);
Future<FirebaseUser> signIn() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
try {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
final FirebaseUser user = await _auth.signInWithCredential(credential);
print("signed in " + user.displayName);
return user;
final FirebaseUser user = await _auth.signInWithCredential(credential);
return user;
} catch (e) {
print('Error signing in with Google: $e');
}
return null;
}
Future<FirebaseUser> getCurrentUser() async {
return await _auth.currentUser();
}
Future<void> signOut() async {
await _auth.signOut();
}
}