This question already has answers here:
How to get URL from Firebase Storage getDownloadURL
                                
                                    (10个回答)
                                
                        
                2年前关闭。
            
        

我正在使用Android Studio并使用Firebase Storage,可以上传所需的图像,但无法获取下载网址。

我用这个:

askSnapshot.getMetadata().getReference().getDownloadUrl().toString();


和这个:

filepath.getDownloadUrl().toString();


结果是一样的

它向我展示了这样的东西:

com.google.android.gms.tasks.zzu@f7d5815


我的上传代码:

FirebaseStorage存储;
    StorageReference storageReference;

storage = FirebaseStorage.getInstance();
        storageReference = storage.getReference();
      最终的StorageReference文件路径= storageReference.child(“ images”)。child(“ test.jpg”);

       filepath.putFile(selectedImage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
           @Override
           public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
               bigImageEncoded=filepath.getDownloadUrl().toString();
               thumbImageEncoded=taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();

               Log.d("download_url",bigImageEncoded);


           }
       }).addOnFailureListener(new OnFailureListener() {
           @Override
           public void onFailure(@NonNull Exception e) {
                  Log.d("erorr",e.getMessage());
           }
       });


有人可以帮忙吗?!
谢谢

最佳答案

为了解决这个问题,我建议在上传任何文件后,将下载URL存储到Firebase Realtime Database或新的Cloud Firestore之类的数据库中,以便以后使用。

请参阅以下获取download URL的简单示例。

storageRef.child("YourFolderName").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        // Got the download URL for "YourFolderName/YourFile.pdf"
        // Add it to your database
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});

10-04 19:07