Android Firebase-从存储中删除上传的图像

时间:2019-11-25 23:36:49

标签: android firebase firebase-storage

我正在开发一项删除上传文件的功能。我目前可以在Cloud Firestore中删除引用,但无法从存储中删除它。下面的代码应从存储中删除,但不起作用

    private void deleteImage(String id, final int position, String fileUrl) {

    StorageReference storageRef = FirebaseStorage.getInstance().getReference("uploads");

    // Create a reference to the file to delete
    StorageReference fileRef = storageRef.child(fileUrl);

    // Delete the file
    fileRef.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            // File deleted successfully
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception exception) {
            // Uh-oh, an error occurred!
        }
    });
}

错误消息是“没有用于请求的身份验证令牌。发生了StorageException。该位置不存在对象。HttpResult:404”。我以为问题与我的fileUrl字段有关,但我不确定。 fileUrl是下载图像的URL,例如,如果我将URL复制并粘贴到Web浏览器中,则可以看到该图像。为什么不起作用?

1 个答案:

答案 0 :(得分:0)

正如@blackapps所评论的那样,我使用的下载URL不适合作为对文件的引用,因此我将fileUrl参数的值更改为“ filename.file_extension” 。代码仍然相同,我只更改了参数值。