当前位置: 首页 > 知识库问答 >
问题:

在firebase存储中检索到错误的下载URL[重复]

应志用
2023-03-14
  final String fileName = songUri.getLastPathSegment() + "";
    //final String fileName1=songUri.getLastPathSegment()+"";

    final StorageReference storageRef = storage.getReference();


    storageRef.child("Uploads").child(fileName).putFile(songUri)
            .addOnSuccessListener(new 
 OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                    String url = 
storageRef.child("Uploads").child(fileName).getDownloadUrl().toString(); 
//returns the url of the uploaded file

                    DatabaseReference reference = database.getReference();

                    reference.child("Uploads").child(fileName).setValue(url).addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {

                            if (task.isSuccessful())
                                Toast.makeText(Upload.this, "File Uploaded Successfully", Toast.LENGTH_SHORT).show();
                            else
                                Toast.makeText(Upload.this, "Upload failed", Toast.LENGTH_SHORT).show();
                        }
                    });
                }
            }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {

            Toast.makeText(Upload.this, "Upload failed",Toast.LENGTH_SHORT).show();
        }

共有1个答案

魏朗
2023-03-14
final String fileName = songUri.getLastPathSegment() + "";
//final String fileName1=songUri.getLastPathSegment()+"";

final StorageReference storageRef = storage.getReference();


storageRef.child("Uploads").child(fileName).putFile(songUri)
 .addOnSuccessListener(new OnSuccessListener < UploadTask.TaskSnapshot > () {
   @Override
   public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

     storageRef.child("Uploads").child(fileName).getDownloadUrl()
      .addOnCompleteListener(new OnCompleteListener < Uri > () {
        @Override
        public void onComplete(@NonNull Task < Uri > task) {
         if (task.isSuccessful()) {
          Uri downloadUri = task.getResult();
          reference.child("Uploads").child(fileName).setValue(downloadUri.toString()).addOnCompleteListener(new OnCompleteListener < Void > () {
           @Override
           public void onComplete(@NonNull Task < Void > task) {

            if (task.isSuccessful())
             Toast.makeText(Upload.this, "File Uploaded Successfully", Toast.LENGTH_SHORT).show();
            else
             Toast.makeText(Upload.this, "Upload failed", Toast.LENGTH_SHORT).show();
           }
          });
         } else {
          Toast.makeText(Upload.this, "upload failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
         }
        }
       }
      }).addOnFailureListener(new OnFailureListener() {
      @Override
      public void onFailure(@NonNull Exception e) {

       Toast.makeText(Upload.this, "Upload failed", Toast.LENGTH_SHORT).show();
      }
 类似资料:
  • 如何将 Firebase 存储文件的下载网址推送到 Firestore 云?我有一个可以将PDF文件上传到Firestore存储的项目,但我无法将上传文件的下载URL推送到Firestore云。 我需要捕获每个文件的上传URL并将其发送到消防库中的文档才能下载它。我正在上传和下载 PDF 文件。 这是我的代码:

  • 我对firebase存储是新手,想知道什么是最好的做法。我想上传图像到firebase云存储,并返回了一个下载url,然后我存储到FireStore。下载网址是永久的吗?其他用户将从firestore读取以获得下载图像的url。 但是当我想从CloudStorage中删除图像时,我只有下载url,而没有文件路径。所以我要删除它吗? 如果我存储的是文件路径,如何获得下载url?

  • 我对编程非常陌生,目前正在Youtube上学习python(“新的Boston-Python3”)试图根据视频中的代码从互联网上下载图像,但出现了一个错误。代码如下: 错误是: 我正在使用PyCharm 2018.3版本 请帮帮我,谢谢

  • 我正在尝试从firebase存储中获取图像,并将其加载到导航标题上的圆形图像视图中。我用毕加索将文件设置到视图中,但它返回空值。。。我不知道为什么。 minSdkVersion 19 这就是我得到的错误: 主要活动: } navigation_header_main.xml build.gradle(app)

  • GS://dexxxxxxxxxxxx.com/videosvideo:67423 从给定的下载URL?

  • 我想从FireBase的方法获取下载Url。如何使用以下代码获取下载Url? 我使用了,但这不起作用。