perfil android update
This commit is contained in:
@@ -295,6 +295,86 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _updateEmail(String newEmail) async {
|
||||||
|
final user = _auth.currentUser;
|
||||||
|
|
||||||
|
try {
|
||||||
|
await user!.updateEmail(newEmail);
|
||||||
|
await FirebaseFirestore.instance
|
||||||
|
.collection('users')
|
||||||
|
.doc(uid)
|
||||||
|
.update({'email': newEmail});
|
||||||
|
setState(() {
|
||||||
|
_email = newEmail;
|
||||||
|
});
|
||||||
|
Get.snackbar(
|
||||||
|
'Éxito',
|
||||||
|
'Correo electrónico actualizado correctamente.',
|
||||||
|
snackPosition: SnackPosition.BOTTOM,
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
Get.snackbar(
|
||||||
|
'No se pudo actualizar el correo',
|
||||||
|
'Primero vuelve a iniciar sesión para confirmar tu identidad y asegurarte de que el nuevo correo electrónico no se haya utilizado previamente.',
|
||||||
|
snackPosition: SnackPosition.BOTTOM,
|
||||||
|
);
|
||||||
|
print('Error al actualizar el correo electrónico: $e');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _showEmailUpdateDialog(BuildContext context) async {
|
||||||
|
TextEditingController emailController = TextEditingController();
|
||||||
|
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
return AlertDialog(
|
||||||
|
title: const Text('Actualizar Email'),
|
||||||
|
content: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
TextFormField(
|
||||||
|
controller: emailController,
|
||||||
|
decoration: const InputDecoration(
|
||||||
|
labelText: 'Nuevo Email',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 16.0),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: Colors.grey,
|
||||||
|
),
|
||||||
|
child: const Text('Cancelar'),
|
||||||
|
),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
// Llama a una función para actualizar el correo electrónico.
|
||||||
|
String newEmail = emailController.text.trim();
|
||||||
|
if (newEmail.isNotEmpty) {
|
||||||
|
_updateEmail(newEmail);
|
||||||
|
}
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
backgroundColor: Colors.blue,
|
||||||
|
),
|
||||||
|
child: const Text('Guardar'),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> updateEmailAndPassword(String email, String password) async {
|
Future<void> updateEmailAndPassword(String email, String password) async {
|
||||||
final User? user = FirebaseAuth.instance.currentUser;
|
final User? user = FirebaseAuth.instance.currentUser;
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
@@ -409,11 +489,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
|
|||||||
_email != null
|
_email != null
|
||||||
? TextFormField(
|
? TextFormField(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(context, CupertinoPageRoute(
|
_showEmailUpdateDialog(context);
|
||||||
builder: (BuildContext context) {
|
|
||||||
return NewPasswordScreen();
|
|
||||||
},
|
|
||||||
));
|
|
||||||
},
|
},
|
||||||
readOnly: true,
|
readOnly: true,
|
||||||
controller: _emailController,
|
controller: _emailController,
|
||||||
|
|||||||
Reference in New Issue
Block a user