我正在开发一项删除上传文件的功能。我目前可以在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浏览器中,则可以看到该图像。为什么不起作用?
正如@blackapps所评论的那样,我使用的下载URL不适合作为对文件的引用,因此我将fileUrl参数的值更改为“ filename.file_extension”。代码仍然相同,我只更改了参数值。