Example #1
0
        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());
        }
Example #2
0
        //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}");
            }
        }