首页 > 解决方案 > 如何删除firestore上的文档?

问题描述

我需要你的帮助。我需要你关于 Firestore 删除文档的建议。我已经工作了 2 天来查找代码。但是每个人都是理论上说的。作为最后的手段,我想在这里写。我如何获得位置值?以及如何删除 firestore 上的文档?非常感谢您现在的回复...

GorevRecyclerAdapter.java

package com.example.oztekapp;

import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

public class GorevRecyclerAdapter extends RecyclerView.Adapter<GorevRecyclerAdapter.PostHolder> {


private ArrayList <String> adliyeList;
private ArrayList <String> gorevbaslikList;
private ArrayList <String> gorevkonuList;
private ArrayList <String> gorevsaatilist;
private ArrayList <String> gorevtarihiList;
private ArrayList <String> useremailList;

public GorevRecyclerAdapter(ArrayList<String> adliyeList, ArrayList<String> gorevbaslikList, ArrayList<String> gorevkonuList, ArrayList<String> gorevsaatilist, ArrayList<String> gorevtarihiList, ArrayList<String> useremailList) {
    this.adliyeList = adliyeList;
    this.gorevbaslikList = gorevbaslikList;
    this.gorevkonuList = gorevkonuList;
    this.gorevsaatilist = gorevsaatilist;
    this.gorevtarihiList = gorevtarihiList;
    this.useremailList = useremailList;
}

@NonNull
@Override
public PostHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
    View view = layoutInflater.inflate(R.layout.recycler_row,parent,false);

    return new PostHolder(view);
}

@Override
public void onBindViewHolder(@NonNull PostHolder holder, int position) {

    holder.useremail.setText(useremailList.get(position));
    holder.adliye.setText(adliyeList.get(position));
    holder.gorevbaslik.setText(gorevbaslikList.get(position));
    holder.gorevkonusu.setText(gorevkonuList.get(position));
    holder.gorevtarihi.setText(gorevtarihiList.get(position));
    holder.gorevsaati.setText(gorevsaatilist.get(position));

}

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

class PostHolder extends RecyclerView.ViewHolder{

    TextView adliye, gorevkonusu, gorevbaslik, gorevsaati, gorevtarihi, useremail;

    public PostHolder(@NonNull final View itemView) {
        super(itemView);

        adliye = itemView.findViewById(R.id.adliyeTextView);
        gorevbaslik = itemView.findViewById(R.id.gorevBaslikTextView);
        gorevkonusu = itemView.findViewById(R.id.gorevKonuTextView);
        gorevtarihi = itemView.findViewById(R.id.gorevTarihTextView);
        gorevsaati = itemView.findViewById(R.id.gorevSaatTextView);
        useremail = itemView.findViewById(R.id.userEmailTextView);

        itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent (itemView.getContext(), GorevDetayActivity.class);
                intent.putExtra("gorevbaslik", gorevbaslikList.get(getAdapterPosition()));
                intent.putExtra("gorevkonu", gorevkonuList.get(getAdapterPosition()));
                intent.putExtra("gorevtarihi", gorevtarihiList.get(getAdapterPosition()));
                intent.putExtra("gorevsaati", gorevsaatilist.get(getAdapterPosition()));
                v.getContext().startActivity(intent);

            }
        });

    }
}

public void deleteItem(int position){
    getSnapshots().getSnapshot(position).getReference().delete();
    notifyDataSetChanged();
}
}

GorevDetayActivity.java

package com.example.oztekapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.StorageReference;

import java.util.ArrayList;

public class GorevDetayActivity extends AppCompatActivity {

private EditText gorevbaslik,gorevkonu,gorevsaat,gorevtarih;
private Button guncelle;
private Spinner adliye;
private ArrayAdapter arrayAdapter;
private AlertDialog.Builder alertDialog;
private FirebaseFirestore firestore;
private ArrayList<String> adliyeList;
private ArrayList <String> gorevbaslikList;
private ArrayList <String> gorevkonuList;
private ArrayList <String> gorevsaatilist;
private ArrayList <String> gorevtarihiList;
private ArrayList <String> useremailList;
private GorevRecyclerAdapter gorevRecyclerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gorev_detay);

    gorevbaslik = findViewById(R.id.detaygorevbaslik);
    gorevkonu = findViewById(R.id.detaygorevkonusu);
    gorevtarih = findViewById(R.id.detaytarih);
    gorevsaat = findViewById(R.id.detaysaat);
    adliye = findViewById(R.id.detayadliye);
    firestore = FirebaseFirestore.getInstance();
    gorevRecyclerAdapter = new GorevRecyclerAdapter(adliyeList,gorevbaslikList,gorevkonuList,gorevsaatilist,gorevtarihiList,useremailList);


    Intent i = getIntent();
    String gorevbasligi = i.getStringExtra("gorevbaslik");
    String gorevkonusu = i.getStringExtra("gorevkonu");
    String gorevtarihi = i.getStringExtra("gorevtarihi");
    String gorevsaati = i.getStringExtra("gorevsaati");

    gorevbaslik.setText(gorevbasligi);
    gorevkonu.setText(gorevkonusu);
    gorevtarih.setText(gorevtarihi);
    gorevsaat.setText(gorevsaati);
    arrayAdapter = ArrayAdapter.createFromResource(this,R.array.adliyeler,android.R.layout.simple_dropdown_item_1line);
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    adliye.setAdapter(arrayAdapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.menudetay,menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(@NonNull final MenuItem item) {

    if (item.getItemId() == R.id.gorevsil)
    {
        alertDialog = new AlertDialog.Builder(GorevDetayActivity.this);
        alertDialog.setTitle("Görev Sil");
        alertDialog.setMessage("Görevi silmek istediğinize emin misiniz ?");
        alertDialog.setPositiveButton("Evet", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                firestore.collection("Görevler").document().delete().addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {

                        Intent intent = new Intent(GorevDetayActivity.this,MainActivity.class);
                        startActivity(intent);

                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {

                        Toast.makeText(GorevDetayActivity.this, e.getLocalizedMessage().toString(), Toast.LENGTH_LONG).show();

                    }
                });



            }
        }).setNegativeButton("Vazgeç", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                dialog.dismiss();

            }
        });

        alertDialog.create().show();
    }

    return super.onOptionsItemSelected(item);
}
}

标签: javafirebasegoogle-cloud-firestore

解决方案


推荐阅读