Как получить URL загрузки из Firebase с флаттером? - PullRequest
0 голосов
/ 18 июня 2019

Я хотел бы получить URL-адрес для загрузки частного изображения в хранилище firbase.

Здравствуйте, попробовал многие предложения на сайте, но все они заканчиваются тем же результатом.

Я попробовал следующий код:

getImageNow() async {
    StorageReference ref =
    FirebaseStorage.instance.ref().child("/1.jpg");
    String url = (await ref.getDownloadURL()).toString();
    return url;
  }

Это работает, когда я печатаю URL внутри функции, но когда я пытаюсь вызвать print(getImageNow()), чтобы получить URL, я просто получаю "Instance of 'Future<dynamic>'"

ОБНОВЛЕНИЕ *************

В конце концов я пытаюсь получить что-то вроде этого:

return Image.network(
  getImageNow(),
);

Но я могуне заставить его работать с асинхронным.

1 Ответ

2 голосов
/ 18 июня 2019

Поскольку getImageNow() является асинхронным (как указано ключевым словом async), вам нужно будет использовать await, чтобы вызывающий код ожидал результата:

print(await getImageNow())

Что await делает здесь, так это то, что оно по существу разворачивает Future и эквивалентно:

getImageNow().then((value) => print(value));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...