Как получить полный downloadUrl из UploadTaskSnapshot в Flutter? - PullRequest
0 голосов
/ 18 мая 2018

Я правильно получаю UploadTaskSnapshot, а поле downloadUrl содержит экземпляр Uri, который анализирует ссылку для загрузки загруженного файла.

Как получить storage и downloadUrl в виде строк?

Ответы [ 4 ]

0 голосов
/ 12 ноября 2018

Из моего этого ответа ,

Последняя версия плагина больше не позволяет вам использовать task.future(), и в документации говорится, что она использует lastSnapshot, которая неработа для меня.

Итак, я использовал onComplete.Вот рабочее решение:

StorageUploadTask uploadTask = storageRef.putFile(yourFile);
StorageTaskSnapshot storageTaskSnapshot = await uploadTask.onComplete;
String downloadUrl = await storageTaskSnapshot.ref.getDownloadURL();
0 голосов
/ 07 октября 2018

@ DomingoMG похоже на последний релиз, который они хотят:

String location = await ref.getDownloadURL();

См. https://pub.dartlang.org/packages/firebase_storage#-example-tab-

0 голосов
/ 06 ноября 2018

Я получаю downloadUrl из v1.0.3 по следующему коду.

StorageReference storageReference = _storage.ref().child(path);
StorageUploadTask uploadTask = storageReference.putFile(imageFile);

StorageTaskSnapshot taskSnapshot = await uploadTask.onComplete;

String downloadUrl = await taskSnapshot.ref.getDownloadURL();
0 голосов
/ 18 мая 2018

старый

final uploadTask = imageStore.putFile(imageFile);
final url = (await uploadTask.future).downloadUrl;

обновление

Этот ответ https://stackoverflow.com/a/52690889/217408 теперь является точным.

final ref = FirebaseStorage.instance
    .ref()
    .child('path')
    .child('to')
    .child('the')
    .child('image_filejpg');

ref.putFile(imageFile);
// or ref.putData(Uint8List.fromList(imageData));

var url = await ref.getDownloadURL() as String;

или

var url = Uri.parse(await ref.getDownloadURL() as String);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...