【问题标题】:Android Studio can't get Storage download URL [duplicate]Android Studio 无法获取存储下载 URL [重复]
【发布时间】:2020-06-26 17:37:27
【问题描述】:

我不知道为什么,但我尝试的一切都不起作用。 我真的需要我的 Storgae DownloadUrl 从我的文件中,但我总是得到类似的东西: com.google.android.gms.tasks...

我正在搜索一周并尝试了不同的 youtube 方法。

如果有人可以帮助我,我将非常感激。 下面是我的代码快照。

非常感谢

private void uploadFile() {
        if (mImageUri != null) {
            final StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()
                    + "." + getFileExtension(mImageUri));

            Log.i("test456", mImageUri.toString());

            mUploadTask = fileReference.putFile(mImageUri)
                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(final UploadTask.TaskSnapshot taskSnapshot) {


                            Handler handler = new Handler();
                            handler.postDelayed(new Runnable(){
                                @Override
                                public void run() {
                                    mProgressBar.setProgress(0);


                                }
                            }, 500);

                            Log.i("test789", fileReference.getDownloadUrl().toString());

                            Toast.makeText(UploadForm.this, "Upload successful", Toast.LENGTH_LONG).show();
                            //test string change Upload too
                            String storageUrl = "";
                            Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),
                                    taskSnapshot.getMetadata().getReference().getDownloadUrl().toString());
                            String uploadId = mDatabaseRef.push().getKey();
                            mDatabaseRef.child(uploadId).setValue(upload);



                          //  FirebaseStorage.getInstance().getReference().child("uploads").getDownloadUrl();

                            final String downloadedUrl = taskSnapshot.getStorage().getDownloadUrl().toString();

                            Uri downloadURL = Uri.parse(mImageUri.toString());
                            String imageUrl = downloadURL.toString();

                            Log.i("test123", String.valueOf(mStorageRef.getDownloadUrl()));

                            Log.i("XXX URL PATH____",taskSnapshot.getMetadata().getReference().getDownloadUrl().toString());



                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            Toast.makeText(UploadForm.this, 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());
                            mProgressBar.setProgress((int) progress);
                        }
                    });
        } else {
            Toast.makeText(this, "No file selected", Toast.LENGTH_SHORT).show();
        }
    }

    private void openImagesActivity() {
        Intent intent = new Intent(this, ImagesActivity.class);
        startActivity(intent);
    }
}

【问题讨论】:

    标签: android firebase firebase-storage


    【解决方案1】:

    你可以试试这个:

    fileReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        // Download URL 
        String url = uri.toString();
    }
    }).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Errors
    }
    });
    

    【讨论】:

      【解决方案2】:

      你也可以通过这种方式获取下载地址。

           mUploadTask = fileReference.putFile(mImageUri)
                  .addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
                      @Override
                      public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
                          if (task.isSuccessful())
                          {
                              task.getResult().getStorage().getDownloadUrl()
                                      .addOnSuccessListener(new OnSuccessListener<Uri>() {
                                          @Override
                                          public void onSuccess(Uri uri) {
                                              String downloadUrl= uri.toString();
      
                                          }
                                      });
                          }
                          else
                          {
      
                          }
                      }
                  });
      

      【讨论】:

        【解决方案3】:

        为了快速响应,但我有一个解决方案:)

        在我的代码中进行此更改后,它现在可以工作了!!

          Task<Uri> urlTask = taskSnapshot.getStorage().getDownloadUrl();
                                        while (!urlTask.isSuccessful());
                                        Uri downloadUrl = urlTask.getResult();
        
                                        //Log.d(TAG, "onSuccess: firebase download url: " + 
                                        downloadUrl.toString()); 
                                        Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),downloadUrl.toString());
        
                                        String uploadId = mDatabaseRef.push().getKey();
                                        mDatabaseRef.child(uploadId).setValue(upload);
            ```
        

        【讨论】:

          猜你喜欢
          • 2018-11-20
          • 2020-11-02
          • 2020-10-31
          • 2019-03-13
          • 1970-01-01
          • 2018-04-30
          • 1970-01-01
          • 2020-10-22
          • 1970-01-01
          相关资源
          最近更新 更多