Я новичок, я пытаюсь воссоздать коммерческие приложения, и на следующем рисунке показаны элементы в корзине, ожидающие заказа. Я использую Cloud Firestore. Я хочу, чтобы пользователи нажимали кнопку размещения заказа, и все элементы добавлялись в другую базу данных, а корзина очищалась. Как я могу это сделать?
Это код в CartActivity
public class CartFragment extends Fragment {
private RecyclerView MyRecycler;
private Context context;
private CartAdapter adapter;
Button buttonorder;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private FirebaseAuth mAuth = FirebaseAuth.getInstance();
private FirebaseUser user = mAuth.getCurrentUser();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable
ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.cartfragment_layout, container,
false);
MyRecycler = v.findViewById(R.id.recycler_cart);
buttonorder = v.findViewById(R.id.place_order_btn);
setUpRecyclerView();
buttonorder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// placeOrder();
}
});
return v;
}
private void setUpRecyclerView() {
CollectionReference notebookRef;
mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
if (user != null) {
notebookRef = db.collection(String.valueOf(new
StringBuffer(user.getUid()).append("cart")));
Query query = notebookRef.orderBy("delivery",
Query.Direction.DESCENDING);
FirestoreRecyclerOptions<CartModel> options = new
FirestoreRecyclerOptions.Builder<CartModel>()
.setQuery(query, CartModel.class)
.build();
adapter = new CartAdapter(options, getActivity(), user);
adapter.notifyDataSetChanged();
MyRecycler.setHasFixedSize(true);
MyRecycler.setLayoutManager(new LinearLayoutManager(context));
MyRecycler.setAdapter(adapter);
new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,
ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder
target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int
direction) {
adapter.deleteItem(viewHolder.getAdapterPosition());
}
}).attachToRecyclerView(MyRecycler);
}
}
@Override
public void onStart() {
super.onStart();
adapter.startListening();
}
@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}
}
А это мой адаптер
public class CartAdapter extends FirestoreRecyclerAdapter<CartModel,
CartAdapter.CartViewHolder> {
Context context;
FirebaseUser user;
public CartAdapter(@NonNull FirestoreRecyclerOptions<CartModel> options,
Context context, FirebaseUser user) {
super(options);
this.context = context;
this.user = user;
}
@Override
protected void onBindViewHolder(@NonNull CartViewHolder holder, int
position, @NonNull CartModel model) {
holder.name.setText(model.getItemName());
holder.delivery.setText(model.getDelivery());
holder.price.setText(model.getamount());
}
public void deleteItem(int position) {
getSnapshots().getSnapshot(position).getReference().delete();
}
@NonNull
@Override
public CartViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int
i) {
View view;
LayoutInflater mInflater =
LayoutInflater.from(viewGroup.getContext());
view = mInflater.inflate(R.layout.activity_cart_adapter, viewGroup,
false);
return new CartViewHolder(view);
}
public class CartViewHolder extends RecyclerView.ViewHolder {
public TextView name;
public TextView delivery;
public TextView price;
public CartViewHolder(View itemView) {
super(itemView);
name = itemView.findViewById(R.id.product_name3);
delivery = itemView.findViewById(R.id.product_delivery3);
price = itemView.findViewById(R.id.price3);
}
}