приветствие каждого,
В моем проекте я успешно загрузил свои файлы в хранилище Firebase и сохранил захваченный URL в FireStore, а затем мог загрузить каждый отдельный файл в отдельности, нажав кнопку, чтобы перевернуть его.
теперь я решил создать кнопку удаления, чтобы удалить конкретный документ при нажатии, как этого добиться?
кнопка для удаления теперь работает, но она удаляет имя документа, которое мне нужно добавить вручную в javascript, и попробуйте его, я хочу, чтобы кнопка delete делала удаление файлов, которые в том же виде, что и кнопка загрузки, делают.
//my adapater contain the codes of download and delete //
package com.example.boc;
import android.app.DownloadManager;
import android.content.Context;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.firestore.FirebaseFirestore;
import java.util.ArrayList;
import static android.os.Environment.DIRECTORY_DOWNLOADS;
public class MyPdfAdapter extends RecyclerView.Adapter<MyViewHolder> {
pdfDownloader pdfDownloader;
ArrayList<DownModel> downModels;
FirebaseFirestore db;
public MyPdfAdapter(pdfDownloader pdfDownloader , ArrayList<DownModel> downModels) {
this.pdfDownloader = pdfDownloader;
this.downModels = downModels;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
LayoutInflater layoutInflater = LayoutInflater.from(pdfDownloader.getBaseContext());
View view = layoutInflater.inflate(R.layout.elements, null, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, final int i) {
myViewHolder.mName.setText(downModels.get(i).getName());
myViewHolder.mLink.setText(downModels.get(i).getLink());
myViewHolder.deletePdfBtn.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
deletepdf();
}
} );
myViewHolder.mDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
downloadFile(myViewHolder.mName.getContext(),downModels.get(i).getName(),".pdf",DIRECTORY_DOWNLOADS,downModels.get(i).getLink());
}
});
}
***//here is the delete operation //***
private void deletepdf() {
db.collection( "files" ).document().delete()
.addOnSuccessListener( new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
} );
}
public void downloadFile(Context context, String fileName, String fileExtension, String destinationDirectory, String url) {
DownloadManager downloadmanager = (DownloadManager) context.
getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalFilesDir(context, destinationDirectory, fileName + fileExtension);
downloadmanager.enqueue(request);
}
@Override
public int getItemCount() {
return downModels.size();
}
}