Java E/StorageException:发生了StorageException。对象在位置处不存在。在firebase android工作室 void uploadCompImage(){ if(compliantImageUri!=null){ StorageReference fileReference=mStorageRef.child(类型).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); fileReference.putFile(compliantImageUri) .addOnSuccessListener(新的OnSuccessListener(){ @凌驾 成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){ Toast.makeText(newcomment.this,“上载成功”,Toast.LENGTH_SHORT.show(); } }) .addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ Toast.makeText(newcomment.this,“图像上传失败”,Toast.LENGTH_SHORT.show(); } }); fileReference.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ 字符串imgUrl; imgUrl=uri.toString(); 上传compdata(imgUrl); } }).addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ imgSearch(); } }); }否则{ Toast.makeText(newcomment.this,“未选择图像”,Toast.LENGTH_SHORT.show(); } } 私有无效imgSearch(){ StorageReference imgRef=mStorageRef.child(type).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); imgRef.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ imageUrl=uri.toString(); 上传compdata(imageUrl); } }); }

Java E/StorageException:发生了StorageException。对象在位置处不存在。在firebase android工作室 void uploadCompImage(){ if(compliantImageUri!=null){ StorageReference fileReference=mStorageRef.child(类型).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); fileReference.putFile(compliantImageUri) .addOnSuccessListener(新的OnSuccessListener(){ @凌驾 成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){ Toast.makeText(newcomment.this,“上载成功”,Toast.LENGTH_SHORT.show(); } }) .addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ Toast.makeText(newcomment.this,“图像上传失败”,Toast.LENGTH_SHORT.show(); } }); fileReference.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ 字符串imgUrl; imgUrl=uri.toString(); 上传compdata(imgUrl); } }).addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ imgSearch(); } }); }否则{ Toast.makeText(newcomment.this,“未选择图像”,Toast.LENGTH_SHORT.show(); } } 私有无效imgSearch(){ StorageReference imgRef=mStorageRef.child(type).child(victimNameid.getText().toString()+“+getFileExtension(compliantImageUri)); imgRef.getDownloadUrl().addOnSuccessListener(新OnSuccessListener()){ @凌驾 成功时的公共无效(Uri){ imageUrl=uri.toString(); 上传compdata(imageUrl); } }); },java,android,firebase,Java,Android,Firebase,fileReference.putFile(compliantImageUri)是异步的。映像上载到该存储引用将需要一些时间,但fileReference.getDownloadUrl()将在该行之后立即执行,因此您将立即尝试访问尚未上载的图像的下载url。这就是您收到错误消息的原因。当 void uploadCompImage(){ if (compliantImageUri != null) { StorageReference fileReference = mSt

fileReference.putFile(compliantImageUri)
是异步的。映像上载到该存储引用将需要一些时间,但
fileReference.getDownloadUrl()
将在该行之后立即执行,因此您将立即尝试访问尚未上载的图像的下载url。这就是您收到错误消息的原因。当

void uploadCompImage(){
    if (compliantImageUri != null) {
        StorageReference fileReference = mStorageRef.child(type).child(victimNameid.getText().toString()+"."+getFileExtension(compliantImageUri));
        fileReference.putFile(compliantImageUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        Toast.makeText(NewCompliant.this,"UPLOAD SUCCESSFUL",Toast.LENGTH_SHORT).show();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(NewCompliant.this,"IMAGE UPLOAD FAILED",Toast.LENGTH_SHORT).show();
                    }
                });
        fileReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                String imgUrl;
                imgUrl = uri.toString();
                uploadCompData(imgUrl);
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                imgSearch();
            }
        });
    } else {
        Toast.makeText(NewCompliant.this,"IMAGE IS NOT SELECTED",Toast.LENGTH_SHORT).show();
    }

}

private void imgSearch(){
    StorageReference imgRef = mStorageRef.child(type).child(victimNameid.getText().toString()+"."+getFileExtension(compliantImageUri));
    imgRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            imageUrl = uri.toString();
            uploadCompData(imageUrl);
        }
    });
}
执行,因此在该方法中或返回该方法后的任何时间访问下载url

祝你有一个愉快的一天

public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    Toast.makeText(NewCompliant.this,"UPLOAD SUCCESSFUL",Toast.LENGTH_SHORT).show();
                }