public async Task <ActionResult> ChangePassword(ChangePasswordModel model) { if (ModelState.IsValid) { var userAuth = CustomAuth.UserAuth; FirebaseObject <CustomerAccount> item = await getUserFromFirebase(userAuth.User.Email); CustomerAccount acc = item.Object; if (model.OldPassword == acc.Pwd) { acc.Pwd = model.NewPassword; } else { ViewBag.Message = "Old password is wrong"; return(View()); } try { await CustomAuth.firebase.Child("UserAccount").Child(item.Key).PutAsync(acc); var authProvider = new FirebaseAuthProvider(new FirebaseConfig("AIzaSyBffXQCMpQYkqD1P6WKymTUd2LkfccU2TU")); var auth = new FirebaseAuthLink(authProvider, CustomAuth.UserAuth); await authProvider.DeleteUserAsync(auth.FirebaseToken); await authProvider.CreateUserWithEmailAndPasswordAsync(CustomAuth.UserAuth.User.Email, model.NewPassword); ViewBag.Message = "Password changed"; } catch (Exception) { ViewBag.Message = "Password could not changed"; return(View()); } } return(View()); }
//Delete user data private async void Delete() { Label nombreUsuario = new Label(); nombreUsuario.SetBinding(Label.TextProperty, new Binding("Nombre", source: AppShell.Inicio)); string nombre = nombreUsuario.Text; var usuario = await FirebaseHelper.ObtenerUsuario(nombre); var authProvider = new FirebaseAuthProvider(new FirebaseConfig(Constantes.WebAPIkey)); try { var eliminar = await UserDialogs.Instance.ConfirmAsync("Si desea que se eliminen todos los datos asociados" + "al pueblo, tendrĂ¡ que eliminarlo en la pantalla 'Mi pueblo'.", "Advertencia", "Eliminar usuario", "Cancelar"); if (eliminar) { await authProvider.DeleteUserAsync(usuario.FirebaseToken); var isdelete = await FirebaseHelper.EliminarUsuario(nombre); if (isdelete) { await Application.Current.MainPage.Navigation.PushAsync(new LoginPage()); } else { UserDialogs.Instance.Alert("No se ha podido eliminar el usuario", "Error", "Ok"); } } } catch (Exception e) { //UserDialogs.Instance.Alert("No se ha podido eliminar el usuario", "", "Ok"); Debug.WriteLine($"Error:{e}"); } }