Guest User

Untitled

a guest
Jan 19th, 2019
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. import 'package:buddy_book/presentation/login_screen.dart';
  2. import 'package:buddy_book/repositories/user_entity.dart';
  3. import 'package:buddy_book/repositories/user_repository.dart';
  4. import 'package:firebase_auth/firebase_auth.dart';
  5. import 'package:flutter/services.dart';
  6. import 'package:google_sign_in/google_sign_in.dart';
  7.  
  8. class FirebaseUserRepository implements UserRepository {
  9. final FirebaseAuth auth;
  10.  
  11. const FirebaseUserRepository(this.auth);
  12.  
  13. @override
  14. Future<UserEntity> login() async {
  15. final firebaseUser = await auth.currentUser();
  16.  
  17. if (firebaseUser == null) return null;
  18.  
  19. return UserEntity(
  20. id: firebaseUser.uid,
  21. displayName: firebaseUser.displayName,
  22. photoUrl: firebaseUser.photoUrl,
  23. email: firebaseUser.email);
  24. }
  25.  
  26. @override
  27. Future<bool> isConnected() async {
  28. final isConnected = await auth.currentUser().then((userConnected) {
  29. return userConnected != null;
  30. });
  31.  
  32. return isConnected;
  33. }
  34.  
  35.  
  36.  
  37. @override
  38. Future<UserEntity> loginEmailPassword(String email, String password) async {
  39.  
  40. return await auth
  41. .signInWithEmailAndPassword(email: email, password: password)
  42. .then((firebaseUser) {
  43. return UserEntity(
  44. id: firebaseUser.uid,
  45. displayName: firebaseUser.displayName,
  46. photoUrl: firebaseUser.photoUrl,
  47. email: firebaseUser.email);
  48. }).catchError((Object obj, StackTrace stack){
  49. throw stack;
  50. });
  51. }
  52.  
  53. @override
  54. Future<UserEntity> loginWithGoogle() async {
  55. final GoogleSignIn googleSignIn = new GoogleSignIn();
  56.  
  57. googleSignIn.signOut();
  58.  
  59. final GoogleSignInAccount googleUser = await googleSignIn.signIn();
  60.  
  61. GoogleSignInAuthentication credentials = await googleUser.authentication;
  62.  
  63. return await auth
  64. .signInWithGoogle(
  65. idToken: credentials.idToken,
  66. accessToken: credentials.accessToken,
  67. )
  68. .then((firebaseUser) {
  69. return UserEntity(
  70. id: firebaseUser.uid,
  71. displayName: firebaseUser.displayName,
  72. photoUrl: firebaseUser.photoUrl,
  73. email: firebaseUser.email);
  74. });
  75.  
  76. // return await
  77. }
  78.  
  79. @override
  80. void sendPasswordLink(String email) {
  81. auth.sendPasswordResetEmail(email: email);
  82. }
  83.  
  84. @override
  85. Future<UserEntity> createAccount(String email, String password, String name) {
  86. return auth
  87. .createUserWithEmailAndPassword(email: email, password: password)
  88. .then((firebaseUser) {
  89. return UserEntity(
  90. id: firebaseUser.uid,
  91. displayName: firebaseUser.displayName,
  92. photoUrl: firebaseUser.photoUrl,
  93. email: firebaseUser.email,
  94. );
  95. });
  96. }
  97. }
Add Comment
Please, Sign In to add comment