上传

时间:2018-05-31 11:17:40

标签: android firebase firebase-storage

我在将文件放入Firebase数据库时遇到了一些问题。我在这一行收到错误:String download_url = task.getResult().getDownloadUrl().toString();,提到“错误:找不到符号方法getDownloadUrl()”。

这是代码: https://pastebin.com/ESXBiZ9a

我的Firebase依赖是:

implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-storage:16.0.1'

任何人都可以指出我必须改变的地方,也许是方法,以便工作?

3 个答案:

答案 0 :(得分:2)

现在更改了getDownloadUrl()方法,我们现在应该将getDownloadUrl与存储引用一起使用。参见https://firebase.google.com/docs/reference/android/com/google/firebase/storage/StorageReference#getDownloadUrl()

 final StorageReference filepath = mImageStorage.child("message_images").child(push_id + ".jpg");
     UploadTask uploadTask = filepath.putFile(imageUri);

     Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
         @Override
         public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
        if(!task.isSuccessful()){
            throw task.getException();
        }
             return filepath.getDownloadUrl();
         }
     }).addOnCompleteListener(new OnCompleteListener<Uri>() {
         @Override
         public void onComplete(@NonNull Task<Uri> task) {
             Uri downloadUri = task.getResult();
             String download_url = downloadUri.toString();
           .
           .
           .
           }

答案 1 :(得分:0)

你应该喜欢这个 -

filePath.putFile(resultUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>()
{
      @Override
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot)
      {
          String download_url = taskSnapshot.getDownloadUrl().toString();
      }
}).addOnFailureListener(new OnFailureListener()
   {
        @Override
        public void onFailure(@NonNull Exception e) 
        {
        }
});

答案 2 :(得分:0)

我认为它将变为:

task.getResult().getStorage().getDownloadUrl().toString();