从 Flutter 中的 Firebase 存储 URL 获取 URL
Getting the URL from FirebaseStorage URI in Flutter
抱歉这个菜鸟问题。但是如何从 Uri 获取 Url String 呢?根据我的理解,Url 是 Uri 的一个子集,但我找不到任何类似 .getUrl
的方法。我错过了什么吗?
背景:
Flutter Web 中 FirebaseStorage 的 getDownloadURL()
returns Uri
而不是 String
.
来自 Flutter Web 的 FirebaseStorage 包的解释:
Future<Uri> getDownloadURL() package:firebase/src/storage.dart
Returns a long lived download URL for this reference.
来自Flutter App's FirebaseStorage 包的getDownloadURL
解释:
Future<String> getDownloadURL()
package:firebase_storage/firebase_storage.dart
Fetches a long lived download URL for this object.
在 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
我试图找到解决方案并阅读文档,但我没有找到任何关于从 Firebase 存储 getDownloadURL
方法将 Uri 转换为 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>'
}
谢谢
根据文档,Uri class has a method toString()。
return url.toString();
抱歉这个菜鸟问题。但是如何从 Uri 获取 Url String 呢?根据我的理解,Url 是 Uri 的一个子集,但我找不到任何类似 .getUrl
的方法。我错过了什么吗?
背景:
Flutter Web 中 FirebaseStorage 的 getDownloadURL()
returns Uri
而不是 String
.
来自 Flutter Web 的 FirebaseStorage 包的解释:
Future<Uri> getDownloadURL() package:firebase/src/storage.dart
Returns a long lived download URL for this reference.
来自Flutter App's FirebaseStorage 包的getDownloadURL
解释:
Future<String> getDownloadURL() package:firebase_storage/firebase_storage.dart
Fetches a long lived download URL for this object.
在 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
我试图找到解决方案并阅读文档,但我没有找到任何关于从 Firebase 存储 getDownloadURL
方法将 Uri 转换为 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>'
}
谢谢
根据文档,Uri class has a method toString()。
return url.toString();