I'm facing an issue regarding deleting an image from firebase storage
.
if i upload 10 multiple images to firebase
. After retrieving multiple images. i deleted all of them. but issue is firebase
usually delete 7 or 8 images out of 10.
I'm deleting one by one. not all images on one click. For few images, Firebase storage
thrown exception
Firebase Storage exception: Object doesn't exist at location
I checked firebase storage
and firebase database
. But image exists. i opened the url
from database and it also shows the image but not deleting from app
Here is my adapter class
code:
final String imageUrl=upload.getUrl();
final FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
mDatabase = FirebaseDatabase.getInstance().getReference(Constants.DATABASE_PATH_UPLOADS);
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int pos=holder.getAdapterPosition();
uploads.remove(pos);
mDatabase.child(currentFirebaseUser.getEmail().replace(".",",")).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Upload delete=dataSnapshot.getValue(Upload.class);
if(code.equals(delete.getCode()))
{
storageReference = FirebaseStorage.getInstance().getReferenceFromUrl(imageUrl);
Toast.makeText(context,imageUrl,Toast.LENGTH_LONG).show();
storageReference.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(context,"Memoir Deleted",Toast.LENGTH_SHORT).show();
mDatabase.child(currentFirebaseUser.getEmail().replace(".",",")).child(code).removeValue();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(context,e.toString(),Toast.LENGTH_SHORT).show();
}
});
}
notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
notifyDataSetChanged();
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
notifyDataSetChanged();
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});