//Update user data private async void Update() { try { Label nombreUsuario = new Label(); nombreUsuario.SetBinding(Label.TextProperty, new Binding("Nombre", source: AppShell.Inicio)); string nombre = nombreUsuario.Text; var usuario = await FirebaseHelper.ObtenerUsuario(nombre); string passSinEspacios = Regex.Replace(NewPassword, @"\s", ""); if (!string.IsNullOrEmpty(passSinEspacios)) { if ((passSinEspacios.Length < 8 && passSinEspacios.Length > 15) || !passSinEspacios.ToCharArray().Any(Char.IsDigit)) { UserDialogs.Instance.Alert("La contraseña debe tener como mínimo 8 caracteres y un máximo de 15, incluyendo una letra minúscula, una mayúscula y un número.", "Error", "OK"); } else { var authProvider = new FirebaseAuthProvider(new FirebaseConfig(Constantes.WebAPIkey)); try { //This is the saved firebaseauthentication that was saved during the time of login var savedfirebaseauth = JsonConvert.DeserializeObject <Firebase.Auth.FirebaseAuth>(Preferences.Get("MyFirebaseRefreshToken", "")); //Here we are Refreshing the token var RefreshedContent = await authProvider.RefreshAuthAsync(savedfirebaseauth); Preferences.Set("MyFirebaseRefreshToken", JsonConvert.SerializeObject(RefreshedContent)); //Now lets grab user information string token = savedfirebaseauth.FirebaseToken; await authProvider.ChangeUserPassword(token, passSinEspacios); var isupdate = await FirebaseHelper.ActualizarUsuario(nombre, usuario.FirebaseToken, usuario.UsuarioId); if (isupdate) { UserDialogs.Instance.Alert("", "Contraseña actualizada", "Ok"); } else { UserDialogs.Instance.Alert("No se ha podido actualizar.", "Error", "Ok"); } } catch (Exception) { UserDialogs.Instance.Alert("Por favor, introduzca un nombre de usuario y una contraseña correctos", "Fallo cambio contraseña", "OK"); } } } else { UserDialogs.Instance.Alert("Por favor, introduzca una nueva contraseña.", "Inserte una contraseña válida", "Ok"); } } catch (Exception e) { Debug.WriteLine($"Error catch:{e}"); } }