Java taskSnaphot.getDownloadUrl()不工作。怎么办?

Java taskSnaphot.getDownloadUrl()不工作。怎么办?,java,android,xml,firebase,firebase-realtime-database,Java,Android,Xml,Firebase,Firebase Realtime Database,我正在将图像上载到FirebaseStorage我已经编写了此代码,但tasksnapshot.getDownloadUrl不工作。怎么办? 请告诉我,这会很有帮助的 我的代码是: public void UploadImageFileToFirebaseStorage() { if (FilePathUri != null) { progressDialog.setTitle("Image is Uploading..."); pr

我正在将图像上载到FirebaseStorage我已经编写了此代码,但tasksnapshot.getDownloadUrl不工作。怎么办? 请告诉我,这会很有帮助的

我的代码是:

public void UploadImageFileToFirebaseStorage() {

    if (FilePathUri != null) {
        progressDialog.setTitle("Image is Uploading...");
        progressDialog.show();
        StorageReference storageReference2nd = storageReference.child(Storage_Path + System.currentTimeMillis() + "." + GetFileExtension(FilePathUri));
        storageReference2nd.putFile(FilePathUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        String TempImageName = ImageName.getText().toString().trim();
                        progressDialog.dismiss();
                        Toast.makeText(getApplicationContext(), "Image Uploaded Successfully ", Toast.LENGTH_LONG).show();

                        @SuppressWarnings("VisibleForTests")
                        ImageUploadInfo imageUploadInfo = new ImageUploadInfo(TempImageName, taskSnapshot.getDownloadUrl().toString());
                        String ImageUploadId = databaseReference.push().getKey();
                        databaseReference.child(ImageUploadId).setValue(imageUploadInfo);
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception exception) {
                        progressDialog.dismiss();
                        Toast.makeText(AddBanner.this, exception.getMessage(), Toast.LENGTH_LONG).show();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        progressDialog.setTitle("Image is Uploading...");

                    }
                });
    }
    else {

        Toast.makeText(AddBanner.this, "Please Select Image or Add Image Name", Toast.LENGTH_LONG).show();

    }
}
请解决我的问题。

//定义变量

private Uri filePath;
private final int PICK_IMAGE_REQUEST = 71;
//火基

FirebaseStorage storage;
StorageReference storageReference;
//在onCreate方法中

 public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.content_main);

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

    }
首先,检查您是否从“多媒体资料”中选择图像。 方法来选择图像

private void chooseImage() {
  Intent intent = new Intent();
  intent.setType("image/*");
  intent.setAction(Intent.ACTION_GET_CONTENT);
  startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
//onActivityResult方法获取图像uri

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
          && data != null && data.getData() != null )
  {
    filePath = data.getData();
    try {
      Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
      imageView.setImageBitmap(bitmap);
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }
  }
}
//上传图像的方法

private void uploadImage() 
{ 
  if(filePath != null)
  {
    final ProgressDialog progressDialog = new ProgressDialog(this);
    progressDialog.setTitle("Uploading...");
    progressDialog.show();
 
    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();
                Toast.makeText(MainActivity.this, "Uploaded", Toast.LENGTH_SHORT).show();
              }
            })
            .addOnFailureListener(new OnFailureListener() {
              @Override
              public void onFailure(@NonNull Exception e) {
                progressDialog.dismiss();
                Toast.makeText(MainActivity.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+"%");
              }
            });
  }
}
//一定要定义这些任务。在android中

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
您应该首先通过调用ChooseCooseImage,然后调用uploadImage方法,将图像作为这些代码上传

并告诉我你下载时的错误