Ошибка базы данных Firebase при загрузке - PullRequest
0 голосов
/ 31 мая 2018

У меня возникли некоторые проблемы при помещении файлов в базу данных 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 голосов
/ 31 мая 2018

Вам должно понравиться это -

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) 
        {
        }
});
0 голосов
/ 27 июля 2019

Я думаю, это изменится на:

task.getResult().getStorage().getDownloadUrl().toString();
0 голосов
/ 31 мая 2018

Теперь метод 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();
           .
           .
           .
           }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...