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),
ElevatedButton(
onPressed: () {
AuthenticationRepository.instance.logout(uid!);
onPressed: () async {
await AuthenticationRepository.instance.logout(uid!);
userProvider.initUserProvider();
userProvider.setNullUser();
},
style: ElevatedButton.styleFrom(
backgroundColor: Colors.red,
@@ -8,8 +8,8 @@ class LoginEmailController extends GetxController {
final email = TextEditingController();
final password = TextEditingController();
void loginUser(String email, String password) {
AuthenticationRepository.instance
Future<void> loginUser(String email, String password) async {
await AuthenticationRepository.instance
.loginWithEmailAndPassword(email, password);
}
}
@@ -7,7 +7,7 @@ class PhoneAuthController extends GetxController {
final phoneNo = TextEditingController();
void phoneAuthentication(String phoneNo) {
AuthenticationRepository.instance.phoneAuthentication(phoneNo);
Future<void> phoneAuthentication(String phoneNo) async {
await AuthenticationRepository.instance.phoneAuthentication(phoneNo);
}
}
+2 -2
View File
@@ -8,8 +8,8 @@ class RegisterController extends GetxController {
final email = TextEditingController();
final password = TextEditingController();
void registerUser(String email, String password) {
AuthenticationRepository.instance
Future<void> registerUser(String email, String password) async {
await AuthenticationRepository.instance
.createUserWithEmailAndPassword(email, password);
}
}
+12 -3
View File
@@ -8,6 +8,7 @@ class UserProvider extends ChangeNotifier {
final FirebaseFirestore _firestore = FirebaseFirestore.instance;
UserModel? _user;
ScoresModel? _score;
Stream<DocumentSnapshot<Map<String, dynamic>>>? _stream;
UserProvider() {
initUserProvider();
@@ -15,10 +16,11 @@ class UserProvider extends ChangeNotifier {
void initUserProvider() {
var uid = FirebaseAuth.instance.currentUser?.uid;
print('DesdeProvider $uid');
if (uid == null) return;
final stream = _firestore.collection('users').doc(uid).snapshots();
stream.listen((documentSnapshot) async {
print('initUserProvider');
_stream = _firestore.collection('users').doc(uid).snapshots();
_stream?.listen((documentSnapshot) async {
if (documentSnapshot.exists) {
final data = documentSnapshot.data() as Map<String, dynamic>;
_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;
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/controllers/phone_auth_controller.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/web_view.dart';
import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -171,9 +173,12 @@ class _LoginScreenState extends State<LoginScreen> {
PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
PhoneAuthController.instance.phoneAuthentication(
completePhoneNumber.trim(),
);
PhoneAuthController.instance
.phoneAuthentication(
completePhoneNumber.trim(),
)
.then((value) =>
{Provider.of<UserProvider>(context).initUserProvider()});
Get.to(
() => CodeValidationScreen(
phoneNumber: completePhoneNumber.trim(),
@@ -341,9 +346,14 @@ class _LoginScreenState extends State<LoginScreen> {
PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
PhoneAuthController.instance.phoneAuthentication(
completePhoneNumber.trim(),
);
PhoneAuthController.instance
.phoneAuthentication(
completePhoneNumber.trim(),
)
.then((value) => {
Provider.of<UserProvider>(context)
.initUserProvider()
});
Get.to(
() => CodeValidationScreen(
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/components/primary_btn.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';
class LoginEmailScreen extends StatefulWidget {
@@ -555,10 +557,14 @@ class PaddingButtomBottom extends StatelessWidget {
child: PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
LoginEmailController.instance.loginUser(
LoginEmailController.instance
.loginUser(
controller.email.text.trim(),
controller.password.text.trim(),
);
)
.then((value) {
Provider.of<UserProvider>(context).initUserProvider();
});
}
},
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/controllers/register_controller.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/web_view.dart';
import 'package:provider/provider.dart';
import 'package:responsive_builder/responsive_builder.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -373,10 +375,14 @@ class _RegisterScreenState extends State<RegisterScreen> {
child: PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
RegisterController.instance.registerUser(
controller.email.text.trim(),
controller.password.text.trim(),
);
RegisterController.instance
.registerUser(
controller.email.text.trim(),
controller.password.text.trim(),
)
.then((value) =>
Provider.of<UserProvider>(context)
.initUserProvider());
}
},
label: 'Registrarme',
@@ -680,10 +686,14 @@ class _RegisterScreenState extends State<RegisterScreen> {
child: PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
RegisterController.instance.registerUser(
controller.email.text.trim(),
controller.password.text.trim(),
);
RegisterController.instance
.registerUser(
controller.email.text.trim(),
controller.password.text.trim(),
)
.then((value) =>
Provider.of<UserProvider>(context)
.initUserProvider());
}
},
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/setting_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:intl/intl.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:prosappco/src/components/network_utility.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class ServiceScreen extends StatefulWidget {
@@ -270,7 +272,6 @@ class _ServiceScreenState extends State<ServiceScreen> {
setState(() {
appVersion = version;
// print('Version de app $appVersion - version de firebase $settings');
});
if (settings != null) {
@@ -331,7 +332,7 @@ class _ServiceScreenState extends State<ServiceScreen> {
SettingModel.getSettings().then(
(SettingModel value) => setState(() {
settings = value.version;
_getAppVersion(); // Llama a _getAppVersion una vez que settings se haya cargado
_getAppVersion();
}),
);
}