Edit User profile
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
|
||||
import 'package:le_kiosque_by_gcs/services/auth/auth.dart';
|
||||
import 'package:firebase_auth/firebase_auth.dart';
|
||||
import 'package:flutter_login_facebook/flutter_login_facebook.dart';
|
||||
import 'package:google_sign_in/google_sign_in.dart';
|
||||
import 'package:le_kiosque_by_gcs/services/firestore/user_service.dart';
|
||||
|
||||
class MainAuth implements Auth {
|
||||
|
||||
FirebaseAuth _auth = FirebaseAuth.instance;
|
||||
|
||||
@override
|
||||
@@ -17,7 +16,9 @@ class MainAuth implements Auth {
|
||||
final userAuth = await googleUser.authentication;
|
||||
if (userAuth.accessToken != null) {
|
||||
final authCredential = GoogleAuthProvider.credential(
|
||||
accessToken: userAuth.accessToken, idToken: userAuth.idToken);
|
||||
accessToken: userAuth.accessToken,
|
||||
idToken: userAuth.idToken,
|
||||
);
|
||||
final authResult = await _auth.signInWithCredential(authCredential);
|
||||
return authResult.user;
|
||||
} else {
|
||||
@@ -66,4 +67,4 @@ class MainAuth implements Auth {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
import 'package:firebase_auth/firebase_auth.dart';
|
||||
import 'package:le_kiosque_by_gcs/model/user.dart';
|
||||
import 'package:le_kiosque_by_gcs/services/firestore/user_service.dart';
|
||||
|
||||
class FirebaseUserService implements UserService {
|
||||
FirebaseFirestore _firestore = FirebaseFirestore.instance;
|
||||
|
||||
@override
|
||||
Stream<KiosqueUser> getCurrentUser(String uid) {
|
||||
final snapshots = _firestore.collection("users").doc(uid).snapshots();
|
||||
return snapshots.map(
|
||||
(event) {
|
||||
final data = event.data();
|
||||
return KiosqueUser(
|
||||
uid: data["uid"],
|
||||
displayName: data['displayName'],
|
||||
emailAddress: data['emailAddress'],
|
||||
city: data['city'],
|
||||
country: data['country'],
|
||||
gender: data['gender'],
|
||||
profileUrl: data['profileUrl'],
|
||||
phoneNumber: data['phoneNumber'],
|
||||
createdAt: (data['createdAt'] as Timestamp).toDate(),
|
||||
updatedAt : (data['updatedAt'] as Timestamp)?.toDate(),
|
||||
birthDay : (data['birthDay'] as Timestamp)?.toDate(),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> save(KiosqueUser kiosqueUser) async {
|
||||
final user = {
|
||||
'uid': kiosqueUser.uid,
|
||||
'displayName': kiosqueUser.displayName,
|
||||
'emailAddress': kiosqueUser.emailAddress,
|
||||
'profileUrl': kiosqueUser.profileUrl,
|
||||
'phoneNumber': kiosqueUser.phoneNumber,
|
||||
'city': kiosqueUser.city,
|
||||
'country': kiosqueUser.country,
|
||||
'gender': kiosqueUser.gender,
|
||||
'createdAt': kiosqueUser.createdAt,
|
||||
'updatedAt': kiosqueUser.updatedAt,
|
||||
'birthDay': kiosqueUser.birthDay,
|
||||
};
|
||||
return await _firestore.collection("users").doc(user['uid']).set(user);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> updateCurrentUser(data) async {
|
||||
final userId = FirebaseAuth.instance.currentUser.uid;
|
||||
return await _firestore.collection("users").doc(userId).set(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import 'package:le_kiosque_by_gcs/model/user.dart';
|
||||
|
||||
abstract class UserService {
|
||||
Future<void> save(KiosqueUser kiosqueUser);
|
||||
Future<void> updateCurrentUser(dynamic data);
|
||||
Stream<KiosqueUser> getCurrentUser(String uid);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user