首页 > 解决方案 > 将图像上传到 Firebase 时出现“对象在该位置不存在”存储异常

问题描述

我不断收到此错误,我不知道问题出在哪里。我已经尝试过类似主题中建议的解决方案,但对我没有任何帮助。

FirebaseStorage storage;
StorageReference storageReference;
storage = FirebaseStorage.getInstance();
storageReference = storage.getReference();

private void uploadImage() {

    if(filePath != null)
    {
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("Uploading...");
        progressDialog.show();

        final StorageReference ref = storageReference.child("images/"+ UUID.randomUUID().toString());


        ref.putFile(filePath)
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    progressDialog.dismiss();
                    ref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                        @Override
                        public void onSuccess(Uri uri) {
                            HashMap<String,String> h = session.getUsersDetailsFromSession();
                            String uid = h.get("uid");
                            String titre = title.getEditText().getText().toString();
                            String tim = time.getEditText().getText().toString();
                            String desc = description.getEditText().getText().toString();
                            String img = String.valueOf(uri);
                            if(titre.equals("") || tim.equals("") || desc.equals("") || lat.equals("") || lon.equals("") || img.equals(""))
                            {
                                openDialogErr();
                            }
                            else
                            {
                                Reclamations rec = new Reclamations(uid,titre,desc,tim,lat,lon,img);
                                String key = FirebaseDatabase.getInstance().getReference().push().getKey();
                                DatabaseReference recl = FirebaseDatabase.getInstance().getReference("Reclamations").child(key);
                                recl.setValue(rec);
                                openDialogSucc();
                            }

                        }
                    });
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    progressDialog.dismiss();
                    Toast.makeText(Reclamation.this, "Failed "+e.getMessage(), Toast.LENGTH_SHORT).show();
                }
            })
            .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                    double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot
                            .getTotalByteCount());
                    progressDialog.setMessage("Uploaded "+(int)progress+"%");
                }
            });
    }
}

标签: androidfirebasefirebase-storage

解决方案


推荐阅读