Как получить URL-адрес изображения из хранилища Firebase и присвоить значение String и повторно использовать значение [duplicate]

Вы можете использовать простой:

^(?=.*\S).+$

, если ваш механизм регулярных выражений поддерживает позитивные образы. Это выражение требует, по крайней мере, одного непространственного характера.

См. rubular .

7
задан Mike McDonald 21 October 2016 в 15:09
поделиться

3 ответа

Следуйте по этой ссылке - https://firebase.google.com/docs/storage/android/download-files#download_data_via_url

    storageRef.child("users/me/profile.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            // Got the download URL for 'users/me/profile.png'
            Uri downloadUri = taskSnapshot.getMetadata().getDownloadUrl();
            generatedFilePath = downloadUri.toString(); /// The string(file link) that you need
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception exception) {
            // Handle any errors
        }
    });
11
ответ дан Shamik Chodankar 17 August 2018 в 09:08
поделиться

Вышеуказанный метод taskSnapshot.getMetadata().getDownloadUrl(); устарел и как альтернатива предоставил эту альтернативу:

final StorageReference ref = storageRef.child("images/mountains.jpg");
uploadTask = ref.putFile(file);

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

    // Continue with the task to get the download URL
    return ref.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
    if (task.isSuccessful()) {
        Uri downloadUri = task.getResult();
    } else {
        // Handle failures
        // ...
    }
  }
});
0
ответ дан magic_man 17 August 2018 в 09:08
поделиться

Раньше firebase использовала getMetadata().getDownloadUrl(), и сегодня они используют getDownloadUrl()

. Его следует использовать следующим образом:

.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        String image = taskSnapshot.getDownloadUrl().toString());
    }
});
1
ответ дан SHR 17 August 2018 в 09:08
поделиться
  • 1
    Добавьте описание к своему коду. – SHR 13 June 2018 в 14:05
  • 2
    Предыдущий ответ не используется, это правильный ответ на сообщение, и вы все еще хотите описания? – Raphael Ramos 14 June 2018 в 14:25
  • 3
    Этот сайт предназначен для поиска цели. Добавьте общее объяснение своего ответа, например: почему это лучше, чем предыдущий, или как он отвечает на вопрос. обычно вводить код без объяснения причин, приведет к тому, что некоторый ppl просто снизится, даже если ответ верен. – SHR 14 June 2018 в 14:33
  • 4
    Не так много объяснений, извините, только до того, как firebase использовала getMetadata (). GetDownloadUrl (), и сегодня они напрямую используют getDownloadUrl (). – Raphael Ramos 14 June 2018 в 14:49
  • 5
    Это должно быть в описании ответа. Nevermind, я сам отредактировал. – SHR 14 June 2018 в 14:51
Другие вопросы по тегам:

Похожие вопросы: