diff --git a/lib/blocs/auth_bloc/auth_bloc.dart b/lib/blocs/auth_bloc/auth_bloc.dart index 427c18d..9797e58 100644 --- a/lib/blocs/auth_bloc/auth_bloc.dart +++ b/lib/blocs/auth_bloc/auth_bloc.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:user_repository/user_repository.dart'; @@ -33,6 +35,12 @@ class AuthBloc extends Bloc { try { final bool isVerified = await _userRepository.verifyOTP(event.code); + if (isVerified) { + emit(AuthStateSuccess()); + } else { + emit(const AuthStateVerifyOAuth(true)); + } + (isVerified) ? emit(AuthStateSuccess()) : emit(const AuthStateVerifyOAuth(true)); diff --git a/packages/user_repository/lib/src/repositories/firebase_user_repository.dart b/packages/user_repository/lib/src/repositories/firebase_user_repository.dart index e7b9296..72f51f0 100644 --- a/packages/user_repository/lib/src/repositories/firebase_user_repository.dart +++ b/packages/user_repository/lib/src/repositories/firebase_user_repository.dart @@ -26,15 +26,18 @@ class FirebaseUserRepository implements UserRepository { }); } - // Stream get user => _userStreamController.stream; - Future updateFromFirebase(String userId) async { try { final myUser = await getMyUser(userId); _userStreamController.add(myUser); } catch (e) { - log('Error en FirebaseUserRepository ${e.toString()}'); - _userStreamController.add(null); + try { + await createUser(userId); + final myUser = await getMyUser(userId); + _userStreamController.add(myUser); + } catch (e) { + _userStreamController.add(null); + } } } @@ -163,7 +166,6 @@ class FirebaseUserRepository implements UserRepository { Future getMyUser(String myUserId) async { try { return usersCollection.doc(myUserId).get().then((value) { - log('xd -- ${value.data().toString()}'); // Imprime el valor de value return MyUser.fromEntity( MyUserEntity.fromDocument(value.data()!), ); @@ -203,4 +205,18 @@ class FirebaseUserRepository implements UserRepository { rethrow; } } + + @override + Future createUser(String userId) async { + try { + await usersCollection.doc(userId).set({ + 'id': userId, + 'name': '', + 'email': '', + 'picture': '', + }); + } catch (e) { + log(e.toString()); + } + } } diff --git a/packages/user_repository/lib/src/repositories/user_repo.dart b/packages/user_repository/lib/src/repositories/user_repo.dart index aefaf90..6b388b3 100644 --- a/packages/user_repository/lib/src/repositories/user_repo.dart +++ b/packages/user_repository/lib/src/repositories/user_repo.dart @@ -24,4 +24,6 @@ abstract class UserRepository { Future updateUserInfo(String userId, Map data); Future uploadPicture(String file, String userId); + + Future createUser(String userId); }