无法从Firebase存储中删除图像

时间:2019-08-02 08:28:04

标签: android firebase firebase-storage

我正在尝试通过首先删除旧映像,然后添加新映像,以新映像替换Firebase存储中的映像。问题是删除。我似乎无法使其正常工作。这是相关代码:

 private void uploadFile(){
        progressBar.setVisibility(View.VISIBLE);
        db2 = FirebaseFirestore.getInstance().collection("Users").document(id);
        storageReference.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                StorageReference fileReference = storageReference.child(System.currentTimeMillis()
                        + "."+ getFileExtension(imageuri));

                mUploadTask = fileReference.putFile(imageuri).
                        addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {

                            @Override
                            public void onSuccess(final UploadTask.TaskSnapshot taskSnapshot) {

                                Task<Uri> urlTask = taskSnapshot.getStorage().getDownloadUrl();
                                while (!urlTask.isSuccessful());
                                Uri downloadUrl = urlTask.getResult();
                                db2.update("Image URI",downloadUrl.toString()).addOnSuccessListener(
                                        new OnSuccessListener<Void>() {
                                            @Override
                                            public void onSuccess(Void aVoid) {
                                                Toast.makeText(settings_activity
                                                                .this, "DP change added." ,
                                                        Toast.LENGTH_SHORT).show();
                                                progressBar.setVisibility(View.GONE);
                                            }
                                        }
                                ).addOnFailureListener(new OnFailureListener() {
                                    @Override
                                    public void onFailure(@NonNull Exception e) {
                                        Toast.makeText(settings_activity.this, "FIRESTROE ERROR "+e.getMessage(), Toast.LENGTH_SHORT).show();
                                        progressBar.setVisibility(View.GONE);
                                    }
                                });


                            }
                        }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(settings_activity.this, "FILE STRORAGE "+e.getMessage(), Toast.LENGTH_SHORT).show();
                        progressBar.setVisibility(View.GONE);
                    }

                });
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(settings_activity.this, "DELETION ERROR: "+e.getMessage(), Toast.LENGTH_SHORT).show();
                progressBar.setVisibility(View.GONE);
            }
        });

    }

这是我在上面的代码中使用的存储参考:

FirebaseStorage.getInstance().getReference().child("profile_pics/"+FirebaseAuth.getInstance().getCurrentUser().getUid());

0 个答案:

没有答案