如何从Firebase存储文件中获取URL?

3

我希望能够从 Firebase 存储中获取 Uint8List 图片的 URL。但是我无法做到这一点。它打印出一个快照,而不是 URL。求助。

我的代码:

 void _storeSignature() async {
        try {
          final  Uint8List? signature = await exportSignature();
    
          final FirebaseStorage? storage = FirebaseStorage.instance;
          final String? pictureUrl =
              "signature/${DateTime.now().millisecondsSinceEpoch.toString()}.png";
    
          final ref = storage!.ref().child(pictureUrl!);
          final uploadTask = ref.putData(signature!);
          final downurl = await uploadTask.whenComplete(() {
            return ref.getDownloadURL();
          });
          final url = downurl.toString();
    
          print(url);
    
        } catch (e) {
          rethrow;
        }
      }
2个回答

2

当调用ref.getDownloadURL()时,你必须await URL后再进行操作。

更改

return ref.getDownloadURL();

转换成

return await ref.getDownloadURL();

不客气!如果这个答案有帮助,请接受它作为答案。 - BJW

1
UploadTask类扩展了Future,因此您已经可以在那里使用await
await ref.putData(signature!);
final downurl = await ref.getDownloadURL();
final url = downurl.toString();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接