android studio _ firebase _ storage _获取下载网址

时间:2018-07-26 16:04:27

标签: java android firebase firebase-realtime-database firebase-storage

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

我用了这个:

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

这:

filepath.getDownloadUrl().toString();

结果相同

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

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

我的上传代码:

FirebaseStorage存储;     StorageReference storageReference;

存储= 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());
           }
       });

有人可以帮忙吗?! 谢谢

2 个答案:

答案 0 :(得分:2)

为解决此问题,我建议在上传任何文件后,将下载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
    }
});

答案 1 :(得分:1)

您需要收听此事件

filepath.getDownloadUrl().addOnSuccessListener(...{...})

您将在回调中获得uri