java - android studio_firebase_存储_获取下载网址

标签 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 存储; 存储引用存储引用;

存储 = FirebaseStorage.getInstance(); storageReference = storage.getReference(); Final StorageReference filepath = 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以便以后可以使用。

请参阅下面获取下载 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
    }
});

关于java - android studio_firebase_存储_获取下载网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51543189/

相关文章:

javascript - 在 firebase 存储上完成上传后如何获取下载 URL

java - 尝试读取二进制保存的整数时 readInt() 不起作用

java - 递归方法堆栈溢出错误

android - R 无法在新创建的项目中解决

android - 将可绘制对象的中心设置在一个点

java - 如何设置多列表代号一个的样式?

javascript - Firebase Firestore 'Reference' 数据类型有什么用?

java - JPanel 动画背景

flatMap 返回 List<Object> 而不是 List<String> 后,Java Stream 收集

java - 适用于 Android 的 Azure 通知中心 : How do I handle Data-Messages with a Background-Service?