In my application, it shows the necessary information that I need to show in the reRecyclerView but when I am trying to delete the one catalog of those it didn't happen. But its execute the Item removed phrase and that catalog still there. I need to remove those catalog from there. It doesn't matter that those data still remain on the database because I just wanna delete the catalog. Does anyone know how to fix the issue? Thank you
Firebase Database
this is the full code.
package com.example.policeemergencysystem;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import com.example.policeemergencysystem.Model.AdminOrders;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
public class AdminCategoryActivity extends AppCompatActivity {
private RecyclerView ordersList;
private DatabaseReference ordersRef, adminRef, mapRef;
private Button backBtn;
private String userID = "", userNAME = "", userPHONE = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin_category);
userID = getIntent().getStringExtra("uid");
userNAME = getIntent().getStringExtra("uname");
userPHONE = getIntent().getStringExtra("uphone");
ordersRef = FirebaseDatabase.getInstance().getReference().child("Users");
adminRef = FirebaseDatabase.getInstance().getReference().child("Location");
ordersList = findViewById(R.id.ordersList);
ordersList.setLayoutManager(new LinearLayoutManager(this));
}
@Override
protected void onStart()
{
super.onStart();
FirebaseRecyclerOptions<AdminOrders> options =
new FirebaseRecyclerOptions.Builder<AdminOrders>()
.setQuery(ordersRef, AdminOrders.class)
.build();
FirebaseRecyclerAdapter<AdminOrders, AdminOrdersViewHolder> adapter =
new FirebaseRecyclerAdapter<AdminOrders, AdminOrdersViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final AdminOrdersViewHolder holder, final int position, final @NonNull AdminOrders model)
{
holder.userName.setText("Name : "+ model.getName());
holder.userPhoneNumber.setText("Phone Number : "+ model.getPhone());
holder.viewLocationBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String uID = getRef(position).getKey();
String uNAME = getRef(position).getKey();
String uPHONE = getRef(position).getKey();
Intent intent = new Intent(AdminCategoryActivity.this, AdminViewMapsActivity.class);
intent.putExtra("uid", uID);
intent.putExtra("uname", uNAME);
intent.putExtra("uphone", uPHONE);
startActivity(intent);
}
});
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
CharSequence options[] = new CharSequence[]
{
"Yes",
"No"
};
AlertDialog.Builder builder = new AlertDialog.Builder(AdminCategoryActivity.this);
builder.setTitle("Are you done with this case?");
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
if(i ==0)
{
String uID = getRef(position).getKey();
RemoveOrder(uID);
}
else
{
finish();
}
adminRef.removeValue()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task)
{
if(task.isSuccessful())
{
Toast.makeText(AdminCategoryActivity.this, "Item removed", Toast.LENGTH_SHORT).show();
finish();
startActivity(getIntent());
}
}
});
}
});
builder.show();
}
});
}
@NonNull
@Override
public AdminOrdersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i)
{
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.orders_layout, parent, false);
return new AdminOrdersViewHolder(view);
}
};
ordersList.setAdapter(adapter);
adapter.startListening();
}
public static class AdminOrdersViewHolder extends RecyclerView.ViewHolder
{
public TextView userName, userPhoneNumber;
public Button viewLocationBtn;
public AdminOrdersViewHolder (View itemView)
{
super(itemView);
userName = itemView.findViewById(R.id.userName);
userPhoneNumber = itemView.findViewById(R.id.userPhoneNumber);
viewLocationBtn = itemView.findViewById(R.id.viewLocationBtn);
}
}
private void RemoveOrder(String uID)
{
adminRef.child(uID).removeValue();
}
}