1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import 'package:firebase_auth/firebase_auth.dart' as firebase_auth;
- import '/models/user.dart';
- class AuthService {
- final firebase_auth.FirebaseAuth _auth = firebase_auth.FirebaseAuth.instance;
- User? _userFromFirebase(firebase_auth.User? user) {
- return user != null
- ? User(
- uid: user.uid,
- email: '',
- phoneNumber: '',
- icNumber: '',
- password: '',
-
-
-
- )
- : null;
- }
- Stream<User?> get user {
- return _auth.authStateChanges().map(_userFromFirebase);
- }
- Future<User?> signInAnonymously() async {
- try {
- firebase_auth.UserCredential authResult = await _auth.signInAnonymously();
- User? user = _userFromFirebase(authResult.user);
- if (user != null) {
- print('User signed in anonymously with UID: ${user.uid}');
- }
- return user;
- } catch (e) {
- print('Error signing in anonymously: $e');
- return null;
- }
- }
- Future<User?> signInWithEmailAndPassword(
- String email, String password) async {
- try {
- firebase_auth.UserCredential authResult =
- await _auth.signInWithEmailAndPassword(
- email: email,
- password: password,
- );
- return _userFromFirebase(authResult.user);
- } catch (e) {
- print('Error signing in with email/password: $e');
- return null;
- }
- }
- Future<User?> registerWithEmailAndPassword(
- String email, String password) async {
- try {
- firebase_auth.UserCredential authResult =
- await _auth.createUserWithEmailAndPassword(
- email: email,
- password: password,
- );
- return _userFromFirebase(authResult.user);
- } catch (e) {
- print('Error registering with email/password: $e');
- return null;
- }
- }
- Future<void> signOut() async {
- try {
- await _auth.signOut();
- } catch (e) {
- print('Error signing out: $e');
- }
- }
- }
|