This commit is contained in:
Felipe
2023-11-02 14:28:38 -05:00
parent e59ebfc534
commit d2e8817103
9 changed files with 66 additions and 30 deletions
+3 -3
View File
@@ -375,10 +375,10 @@ class DrawerMenu extends StatelessWidget {
), ),
const SizedBox(height: 5), const SizedBox(height: 5),
ElevatedButton( ElevatedButton(
onPressed: () { onPressed: () async {
AuthenticationRepository.instance.logout(uid!); await AuthenticationRepository.instance.logout(uid!);
userProvider.initUserProvider(); userProvider.setNullUser();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
backgroundColor: Colors.red, backgroundColor: Colors.red,
@@ -8,8 +8,8 @@ class LoginEmailController extends GetxController {
final email = TextEditingController(); final email = TextEditingController();
final password = TextEditingController(); final password = TextEditingController();
void loginUser(String email, String password) { Future<void> loginUser(String email, String password) async {
AuthenticationRepository.instance await AuthenticationRepository.instance
.loginWithEmailAndPassword(email, password); .loginWithEmailAndPassword(email, password);
} }
} }
@@ -7,7 +7,7 @@ class PhoneAuthController extends GetxController {
final phoneNo = TextEditingController(); final phoneNo = TextEditingController();
void phoneAuthentication(String phoneNo) { Future<void> phoneAuthentication(String phoneNo) async {
AuthenticationRepository.instance.phoneAuthentication(phoneNo); await AuthenticationRepository.instance.phoneAuthentication(phoneNo);
} }
} }
+2 -2
View File
@@ -8,8 +8,8 @@ class RegisterController extends GetxController {
final email = TextEditingController(); final email = TextEditingController();
final password = TextEditingController(); final password = TextEditingController();
void registerUser(String email, String password) { Future<void> registerUser(String email, String password) async {
AuthenticationRepository.instance await AuthenticationRepository.instance
.createUserWithEmailAndPassword(email, password); .createUserWithEmailAndPassword(email, password);
} }
} }
+12 -3
View File
@@ -8,6 +8,7 @@ class UserProvider extends ChangeNotifier {
final FirebaseFirestore _firestore = FirebaseFirestore.instance; final FirebaseFirestore _firestore = FirebaseFirestore.instance;
UserModel? _user; UserModel? _user;
ScoresModel? _score; ScoresModel? _score;
Stream<DocumentSnapshot<Map<String, dynamic>>>? _stream;
UserProvider() { UserProvider() {
initUserProvider(); initUserProvider();
@@ -15,10 +16,11 @@ class UserProvider extends ChangeNotifier {
void initUserProvider() { void initUserProvider() {
var uid = FirebaseAuth.instance.currentUser?.uid; var uid = FirebaseAuth.instance.currentUser?.uid;
print('DesdeProvider $uid');
if (uid == null) return; if (uid == null) return;
print('initUserProvider');
final stream = _firestore.collection('users').doc(uid).snapshots(); _stream = _firestore.collection('users').doc(uid).snapshots();
stream.listen((documentSnapshot) async { _stream?.listen((documentSnapshot) async {
if (documentSnapshot.exists) { if (documentSnapshot.exists) {
final data = documentSnapshot.data() as Map<String, dynamic>; final data = documentSnapshot.data() as Map<String, dynamic>;
_user = UserModel.fromFirestore(data); _user = UserModel.fromFirestore(data);
@@ -32,6 +34,13 @@ class UserProvider extends ChangeNotifier {
}); });
} }
void setNullUser() {
_user = null;
_score = null;
_stream = null;
notifyListeners();
}
UserModel? get user => _user; UserModel? get user => _user;
ScoresModel? get score => _score; ScoresModel? get score => _score;
} }
+16 -6
View File
@@ -8,8 +8,10 @@ import 'package:prosappco/src/components/bottom_sheet.dart';
import 'package:prosappco/src/components/primary_btn.dart'; import 'package:prosappco/src/components/primary_btn.dart';
import 'package:prosappco/src/controllers/phone_auth_controller.dart'; import 'package:prosappco/src/controllers/phone_auth_controller.dart';
import 'package:prosappco/src/models/setting_model.dart'; import 'package:prosappco/src/models/setting_model.dart';
import 'package:prosappco/src/providers/user_provider.dart';
import 'package:prosappco/src/screens/code_validation.dart'; import 'package:prosappco/src/screens/code_validation.dart';
import 'package:prosappco/src/screens/web_view.dart'; import 'package:prosappco/src/screens/web_view.dart';
import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart'; import 'package:responsive_builder/responsive_builder.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@@ -171,9 +173,12 @@ class _LoginScreenState extends State<LoginScreen> {
PrimaryButtom( PrimaryButtom(
onPressed: () { onPressed: () {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
PhoneAuthController.instance.phoneAuthentication( PhoneAuthController.instance
completePhoneNumber.trim(), .phoneAuthentication(
); completePhoneNumber.trim(),
)
.then((value) =>
{Provider.of<UserProvider>(context).initUserProvider()});
Get.to( Get.to(
() => CodeValidationScreen( () => CodeValidationScreen(
phoneNumber: completePhoneNumber.trim(), phoneNumber: completePhoneNumber.trim(),
@@ -341,9 +346,14 @@ class _LoginScreenState extends State<LoginScreen> {
PrimaryButtom( PrimaryButtom(
onPressed: () { onPressed: () {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
PhoneAuthController.instance.phoneAuthentication( PhoneAuthController.instance
completePhoneNumber.trim(), .phoneAuthentication(
); completePhoneNumber.trim(),
)
.then((value) => {
Provider.of<UserProvider>(context)
.initUserProvider()
});
Get.to( Get.to(
() => CodeValidationScreen( () => CodeValidationScreen(
phoneNumber: completePhoneNumber.trim(), phoneNumber: completePhoneNumber.trim(),
+8 -2
View File
@@ -5,6 +5,8 @@ import 'package:get/get.dart';
import 'package:prosappco/src/authentication/authentication_repository.dart'; import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/components/primary_btn.dart'; import 'package:prosappco/src/components/primary_btn.dart';
import 'package:prosappco/src/controllers/login_email_controller.dart'; import 'package:prosappco/src/controllers/login_email_controller.dart';
import 'package:prosappco/src/providers/user_provider.dart';
import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart'; import 'package:responsive_builder/responsive_builder.dart';
class LoginEmailScreen extends StatefulWidget { class LoginEmailScreen extends StatefulWidget {
@@ -555,10 +557,14 @@ class PaddingButtomBottom extends StatelessWidget {
child: PrimaryButtom( child: PrimaryButtom(
onPressed: () { onPressed: () {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
LoginEmailController.instance.loginUser( LoginEmailController.instance
.loginUser(
controller.email.text.trim(), controller.email.text.trim(),
controller.password.text.trim(), controller.password.text.trim(),
); )
.then((value) {
Provider.of<UserProvider>(context).initUserProvider();
});
} }
}, },
label: 'Iniciar'), label: 'Iniciar'),
+18 -8
View File
@@ -9,8 +9,10 @@ import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/components/primary_btn.dart'; import 'package:prosappco/src/components/primary_btn.dart';
import 'package:prosappco/src/controllers/register_controller.dart'; import 'package:prosappco/src/controllers/register_controller.dart';
import 'package:prosappco/src/models/setting_model.dart'; import 'package:prosappco/src/models/setting_model.dart';
import 'package:prosappco/src/providers/user_provider.dart';
import 'package:prosappco/src/screens/login/login.dart'; import 'package:prosappco/src/screens/login/login.dart';
import 'package:prosappco/src/screens/web_view.dart'; import 'package:prosappco/src/screens/web_view.dart';
import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart'; import 'package:responsive_builder/responsive_builder.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
@@ -373,10 +375,14 @@ class _RegisterScreenState extends State<RegisterScreen> {
child: PrimaryButtom( child: PrimaryButtom(
onPressed: () { onPressed: () {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
RegisterController.instance.registerUser( RegisterController.instance
controller.email.text.trim(), .registerUser(
controller.password.text.trim(), controller.email.text.trim(),
); controller.password.text.trim(),
)
.then((value) =>
Provider.of<UserProvider>(context)
.initUserProvider());
} }
}, },
label: 'Registrarme', label: 'Registrarme',
@@ -680,10 +686,14 @@ class _RegisterScreenState extends State<RegisterScreen> {
child: PrimaryButtom( child: PrimaryButtom(
onPressed: () { onPressed: () {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
RegisterController.instance.registerUser( RegisterController.instance
controller.email.text.trim(), .registerUser(
controller.password.text.trim(), controller.email.text.trim(),
); controller.password.text.trim(),
)
.then((value) =>
Provider.of<UserProvider>(context)
.initUserProvider());
} }
}, },
isEnabled: _isChecked, isEnabled: _isChecked,
+3 -2
View File
@@ -15,6 +15,7 @@ import 'package:prosappco/src/components/drawer_menu.dart';
import 'package:prosappco/src/models/event_model.dart'; import 'package:prosappco/src/models/event_model.dart';
import 'package:prosappco/src/models/setting_model.dart'; import 'package:prosappco/src/models/setting_model.dart';
import 'package:prosappco/src/models/user_model.dart'; import 'package:prosappco/src/models/user_model.dart';
import 'package:prosappco/src/providers/user_provider.dart';
import 'package:prosappco/src/screens/professional.dart'; import 'package:prosappco/src/screens/professional.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:prosappco/src/screens/profile.dart'; import 'package:prosappco/src/screens/profile.dart';
@@ -25,6 +26,7 @@ import 'package:prosappco/src/screens/ubicacion.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:prosappco/src/components/network_utility.dart'; import 'package:prosappco/src/components/network_utility.dart';
import 'package:package_info_plus/package_info_plus.dart'; import 'package:package_info_plus/package_info_plus.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
class ServiceScreen extends StatefulWidget { class ServiceScreen extends StatefulWidget {
@@ -270,7 +272,6 @@ class _ServiceScreenState extends State<ServiceScreen> {
setState(() { setState(() {
appVersion = version; appVersion = version;
// print('Version de app $appVersion - version de firebase $settings');
}); });
if (settings != null) { if (settings != null) {
@@ -331,7 +332,7 @@ class _ServiceScreenState extends State<ServiceScreen> {
SettingModel.getSettings().then( SettingModel.getSettings().then(
(SettingModel value) => setState(() { (SettingModel value) => setState(() {
settings = value.version; settings = value.version;
_getAppVersion(); // Llama a _getAppVersion una vez que settings se haya cargado _getAppVersion();
}), }),
); );
} }