如何从Flutter中的UploadTaskSnapshot获取完整的downloadUrl?

Tre*_*ree 6 firebase flutter firebase-storage

我正确收到UploadTaskSnapshot,字段downloadUrl包含一个Uri解析上传文件下载链接的实例.

如何将存储和downloadUrl作为字符串?

Gün*_*uer 8

final uploadTask = imageStore.putFile(imageFile);
final url = (await uploadTask.future).downloadUrl;
Run Code Online (Sandbox Code Playgroud)

更新

这个答案/sf/answers/3688362261/现在是准确的答案。

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;
Run Code Online (Sandbox Code Playgroud)

要么

var url = Uri.parse(await ref.getDownloadURL() as String);
Run Code Online (Sandbox Code Playgroud)


eza*_*spi 6

@DomingoMG它看起来像他们想要的最新版本:

String location = await ref.getDownloadURL();
Run Code Online (Sandbox Code Playgroud)

请参阅https://pub.dartlang.org/packages/firebase_storage#-example-tab-


ko2*_*2ic 5

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();
Run Code Online (Sandbox Code Playgroud)