【问题标题】:Getting the URL from FirebaseStorage URI in Flutter在 Flutter 中从 FirebaseStorage URI 获取 URL
【发布时间】:2021-02-23 03:00:16
【问题描述】:

对不起,菜鸟问题。但是如何从 Uri 获取 Url 字符串?据我了解,Url 是 Uri 的一个子集,但我找不到任何类似 .getUrl 的方法。我错过了什么吗?

背景:
Flutter Web 中 FirebaseStorage 的 getDownloadURL() 以某种方式返回 Uri 而不是 String

来自 Flutter Web 的 FirebaseStorage 包的解释:

未来 getDownloadURL() 包:firebase/src/storage.dart

返回此引用的长期下载 URL。

来自 Flutter App 的 FirebaseStorage 包的getDownloadURL 解释:

未来 getDownloadURL() 包:firebase_storage/firebase_storage.dart

获取此对象的长期下载 URL。

在 Flutter 应用中我的 pubspec.yaml:

  firebase_core: ^0.5.1
  firebase_auth: ^0.18.2
  cloud_firestore: ^0.14.2
  firebase_storage: ^5.0.0-dev.4

在 Flutter Web 中我的 pubspec.yaml:

  firebase: ^7.3.2
  cloud_firestore: ^0.14.2
  cloud_functions: ^0.6.0+1

我试图找到解决方案并阅读文档,但我没有找到任何关于将 Uri 从 Firebase Storage getDownloadURL 方法转换为 Url 的文章。它似乎被视为几乎相同的东西。但这给了我错误。请参阅下面的代码:

***代码:

Future<String> uploadImage(String localFilename, String filename, String path, StorageReference ref) async {
    final byteData = await rootBundle.load('assets/posts_images/$localFilename');
    final bytes = byteData.buffer.asUint8List();

    final metadata = UploadMetadata(contentType: 'image/jpeg');
    final uploadTask = ref.child('$path/$filename').put(bytes, metadata); 
    final snapshot = await uploadTask.future;
    final url = await snapshot.ref.getDownloadURL();

    return url; // Error: A value of type 'Uri' can't be returned from method 'uploadImage' because it has a return type of 'Future<String>' 
  }

谢谢

【问题讨论】:

  • 请编辑问题以显示未按预期方式工作的代码。
  • 感谢您的评论。我已经添加了上面的代码。而这只是在 Flutter Web 中。在 Flutter App 中不会发生这种情况。
  • 但我的问题是如何将 URI 转换为 URL,并可能获得有关如何从 Flutter Web 中的 Firebase 存储方法获取 URL 的答案

标签: firebase flutter firebase-storage flutter-web


【解决方案1】:

根据文档,Uri 类有一个方法toString()

return url.toString();

【讨论】:

  • 哦,就是这么简单。我没有意识到,我以为.toString 只会返回A Uri Object 之类的东西或其他东西。没有意识到它实际上把它变成了Url。谢谢道格。抱歉再次提出菜鸟问题..
猜你喜欢
  • 2021-11-09
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 2010-10-24
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多