Проведите пальцем, чтобы удалить в Firebase Recycler Адаптер удаляет все сообщения пользователя - PullRequest
0 голосов
/ 12 марта 2020

У меня есть приложение портала вакансий с двумя представлениями, одно из которых предназначено для пользователя для его собственного сообщения, а другое - publi c. Теперь я хочу, чтобы пользователь мог удалить свое сообщение с помощью прокрутки. выделенный идентификатор сообщения Я использовал помощник ItemTouch, он работает, но он удаляет все сообщения пользователя, я хочу, чтобы он удалил тот конкретный пост, который был проведен.

public class PostJobActivity extends AppCompatActivity {

    private FloatingActionButton fabBtn;

    private Toolbar toolbar;

    private RecyclerView recyclerView;

    private FirebaseAuth mAuth;

    private DatabaseReference mJobPostDatabase;
    private DatabaseReference mJobPost;

    private DatabaseReference mPublicDatabase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_post_job);
        fabBtn = findViewById(R.id.fab_add);

        toolbar = findViewById(R.id.toolbar_post_job);
        setSupportActionBar(toolbar);
        getSupportActionBar().setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("POST JOB");

        mAuth = FirebaseAuth.getInstance();
        FirebaseUser mUser = mAuth.getCurrentUser();
        final String uId = mUser.getUid();
        mJobPostDatabase = FirebaseDatabase.getInstance().getReference().child("Job Post").child(uId);
        mJobPost = FirebaseDatabase.getInstance().getReference().child("Job Post").child(uId);

        mPublicDatabase = FirebaseDatabase.getInstance().getReference().child("Public database");

        recyclerView = findViewById(R.id.recycler_job_post_id);
        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        layoutManager.setStackFromEnd(true);
        layoutManager.setReverseLayout(true);

        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(layoutManager);

        fabBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), InsertJobPostActivity.class));
            }
        });
    }

    @Override
    protected void onStart() {
        super.onStart();

        final FirebaseRecyclerAdapter<Data, MyViewHolder> adapter = new FirebaseRecyclerAdapter<Data, MyViewHolder>(
                Data.class,
                R.layout.job_post_item,
                MyViewHolder.class,
                mJobPostDatabase) {

            @Override
            protected void populateViewHolder(MyViewHolder viewHolder, Data model, int position) {
                viewHolder.setJobDate(model.getDate());
                viewHolder.setJobTitle(model.getTitle());
                viewHolder.setCompany(model.getCname());
                viewHolder.setDivison(model.getDname());
                viewHolder.setAboutCompany(model.getAbtcompany());
                viewHolder.setLocation(model.getClocation());
                viewHolder.setExperience(model.getCexperience());
                viewHolder.setAgeLimit(model.getLimit());
                viewHolder.setJobSalary(model.getCsalary());
                viewHolder.setContact(model.getContact());
                viewHolder.setContactName(model.getNcontact());
                viewHolder.setEmail(model.getEcompany());
            }
        };

        recyclerView.setAdapter(adapter);
        new ItemTouchHelper(iTemCallBack).attachToRecyclerView(recyclerView);
    }

    public static class MyViewHolder extends RecyclerView.ViewHolder {

        View myView;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);

            myView = itemView;
        }

        public void setJobTitle(String title) {
            TextView mTitle = myView.findViewById(R.id.jobtitle);
            mTitle.setText(title);
        }

        public void setJobDate(String date) {
            TextView mDate = myView.findViewById(R.id.job_date);
            mDate.setText(date);
        }

        public void setCompany(String company) {
            TextView mCompany = myView.findViewById(R.id.job_company);
            mCompany.setText(company);
        }

        public void setDivison(String divison) {
            TextView mDivison = myView.findViewById(R.id.job_divison);
            mDivison.setText(divison);
        }

        public void setAboutCompany(String aboutCompany) {
            TextView mAboutCompany = myView.findViewById(R.id.job_about_company);
            mAboutCompany.setText(aboutCompany);
        }

        public void setLocation(String location) {
            TextView mLocation = myView.findViewById(R.id.job_location);
            mLocation.setText(location);
        }

        public void setExperience(String experience) {
            TextView mExperience = myView.findViewById(R.id.job_experience);
            mExperience.setText(experience);
        }

        public void setAgeLimit(String ageLimit) {
            TextView mAageLimit = myView.findViewById(R.id.job_age_limit);
            mAageLimit.setText(ageLimit);
        }

        public void setJobSalary(String salary) {
            TextView mJobSalary = myView.findViewById(R.id.job_salary);
            mJobSalary.setText(salary);
        }

        public void setContact(String contact) {
            TextView mContact = myView.findViewById(R.id.job_contact);
            mContact.setText(contact);
        }

        public void setContactName(String contactName) {
            TextView mContactName = myView.findViewById(R.id.job_contact_name);
            mContactName.setText(contactName);
        }

        public void setEmail(String email) {
            TextView mEmail = myView.findViewById(R.id.job_email);
            mEmail.setText(email);
        }
    }
    ItemTouchHelper.SimpleCallback iTemCallBack = new SimpleCallback(0,ItemTouchHelper.RIGHT) {
        @Override
        public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull ViewHolder viewHolder, @NonNull ViewHolder target) {
            return false;
        }

        @Override
        public void onSwiped(@NonNull ViewHolder viewHolder, int direction) {
        FirebaseDatabase.getInstance().getReference().child("Job Post").removeValue();
        }
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...