首页 > 解决方案 > 未从 Firebase 存储中检索到下载 URL

问题描述

uploadTask
            .addOnSuccessListener(AdminDisplayProductActivity.this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(final UploadTask.TaskSnapshot taskSnapshot) {


                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            mProgressBar.setProgress(0);
                            downloadUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
                            AddProduct(downloadUrl);

                            Toast.makeText(AdminDisplayProductActivity.this, "Uploaded !" + downloadUrl, Toast.LENGTH_SHORT).show();
                        }
                    }, 500);

                    Toast.makeText(AdminDisplayProductActivity.this, "File Uploaded"
                            , Toast.LENGTH_SHORT).show();

                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(AdminDisplayProductActivity.this, "Upload Fail !", 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);
                }
            });

标签: firebaseurldownloaduristorage

解决方案


getDownloadUrl() 返回一个 Task 对象,您需要在该对象上附加一个完成侦听器。getDownloadUrl() 上的 toString() 最终将为您提供 firebase 用于下载 url 的类的名称。

请在此处附加一个侦听器,在侦听器内部,您将获得 Uri 格式的下载 url。


推荐阅读