fix
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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'),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user