Как удалить родителя из базы данных Firebase из адаптера утилизатора? - PullRequest
1 голос
/ 27 мая 2019

Я делаю проект в базе данных Firebase и хотел удалить родителя из базы данных Firebase в представлении переработчика.Вот как это выглядит из моей базы данных База данных Я хочу удалить этот ключ со стрелкой.

Проблема: - Код не удаляет родительский ключ визображение.Я хочу удалить ключ со стрелкой.

Это мой код для держателя просмотра

public class ViewHolder1 extends RecyclerView.Adapter<ViewHolder1.ImageViewHolder> {
private Context mContext1;
private List<Model1> mModel1;
private ImageAdapter.OnItemClickListener mListener;


public ViewHolder1(Context context1, List<Model1> models1) {
    mContext1 = context1;
    mModel1 = models1;

}

@NonNull
@Override
public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(mContext1).inflate(R.layout.row1, viewGroup, false);
    return new ImageViewHolder(v);
}

@Override
public void onBindViewHolder(@NonNull ImageViewHolder imageViewHolder, int i) {
    final Model1 mModelcur = mModel1.get(i);
    imageViewHolder.img_food.setText(mModelcur.getFood());
    imageViewHolder.img_order.setText(mModelcur.getOrder());
    imageViewHolder.img_cost.setText(mModelcur.getPrice());


}

@Override
public int getItemCount() {
    return mModel1.size();
}

public class ImageViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
        , View.OnCreateContextMenuListener, MenuItem.OnMenuItemClickListener{
    public TextView img_food;
    public TextView img_order;
    public TextView img_cost;


    public ImageViewHolder(@NonNull View itemView) {
        super(itemView);
        img_food = itemView.findViewById(R.id.Foody);
        img_order = itemView.findViewById(R.id.Ordery);
        img_cost = itemView.findViewById(R.id.Costy);

        itemView.setOnClickListener(this);
        itemView.setOnCreateContextMenuListener(this);
    }

    @Override
    public void onClick(View v) {
        if(mListener != null)
        {
            int position = getAdapterPosition();
            if(position != RecyclerView.NO_POSITION)
            {
                mListener.onItemClick(position);
            }
        }
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        MenuItem delete = menu.add(Menu.NONE, 1,1,"Delete");
        delete.setOnMenuItemClickListener(this);
    }

    @Override
    public boolean onMenuItemClick(MenuItem item) {
        if(mListener != null)
        {
            int position = getAdapterPosition();
            if(position != RecyclerView.NO_POSITION)
            {
                switch(item.getItemId())
                {
                    case 1:
                        mListener.onDeleteClick(position);
                        return true;
                }
            }
        }
        return false;
    }
}

public interface OnItemClickListener
{
    void onItemClick(int position);
    void onDeleteClick1(int position);
}

public void setOnItemClickListener(ImageAdapter.OnItemClickListener listener)
{
    mListener = listener;
}

}

и это для моей основной активности

mDatabaseReference2= FirebaseDatabase.getInstance().getReference("User");
    mDatabaseReference2.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for(final DataSnapshot postSnapshot:dataSnapshot.getChildren())
            {
                final String myParentNode = postSnapshot.getKey();
                mDatabaseReference  = FirebaseDatabase.getInstance().getReference();
                mDatabaseReference.orderByKey().equalTo(myParentNode).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        for(DataSnapshot posts: dataSnapshot.getChildren())
                        {
                            final String key = posts.getKey();
                            if(key.equals(myParentNode))
                            {
                                mDatabaseReference1 = FirebaseDatabase.getInstance().getReference(key).child("Ordered");
                                mDatabaseReference1.addValueEventListener(new ValueEventListener() {
                                    @Override
                                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                        for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                                            Model1 model2=postSnapshot.getValue(Model1.class);

                                            mModel2.add(model2);
                                        }
                                        mAdapter2.notifyDataSetChanged();

                                    }

                                    @Override
                                    public void onCancelled(@NonNull DatabaseError databaseError) {

                                    }
                                });
                            }
                        }

                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

@Override
public void onItemClick(int position) {

}

@Override
public void onDeleteClick1(int position) {
    Model1 selectedItem = mModel2.get(position);
    String selectedKey = selectedItem.getFood();
    mDatabaseReference2= FirebaseDatabase.getInstance().getReference("User");
    mDatabaseReference2.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for(final DataSnapshot postSnapshot:dataSnapshot.getChildren())
            {
                String myKey = postSnapshot.getKey();
                mDatabaseReference  = FirebaseDatabase.getInstance().getReference();
                mDatabaseReference.orderByKey().equalTo(myKey).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        for(DataSnapshot posts: dataSnapshot.getChildren())
                        {
                            String myKey = posts.getKey();
                            FirebaseDatabase.getInstance().getReference().child(myKey).child("Ordered").removeValue()
                                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                                        @Override
                                        public void onComplete(@NonNull Task<Void> task) {
                                            if (task.isSuccessful()) {
                                                Log.d("Delete", "Notification has been deleted");
                                            } else {
                                                Log.d("Delete", "Notification couldn't be deleted");
                                            }
                                        }
                                    });
                        }
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {

                    }
                });

            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

@Override
protected void onDestroy()
{
    super.onDestroy();
    mDatabaseReference1.removeEventListener(mDBListener);
}

Обновление Может кто-нибудь помочь мне, пожалуйста?Сбой кода после того, как я нажал кнопку возврата.Мне действительно нужна помощь, пожалуйста.Я не могу удалить ключ или ребенка в адаптере утилизатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...