firebase - 如何从 Firebase 存储中获取图像 URL?
问题描述
此函数保存在 FireStore 中:“Future”实例而不是 url。如果没有 toString 方法,它会给出错误“未来动态不能分配给字符串”。
onPressed: () {
final StorageReference ref = FirebaseStorage.instance
.ref()
.child('images')
.child('image4.jpg');
ref.putFile(image);
final String downloadUrl = ref.getDownloadURL().toString();
Firestore.instance.collection('images').add({"url": downloadUrl});
})
解决方案
ref.getDownloadURL()
是一个未来,所以你需要await
它
onPressed: () async {
final StorageReference ref = FirebaseStorage.instance
.ref()
.child('images')
.child('image4.jpg');
StorageUploadTask uploadTask = ref.putFile(image);
String downloadUrl = await (await uploadTask.onComplete).ref.getDownloadURL();
Firestore.instance.collection('images').add({"url": downloadUrl});
}
推荐阅读
- kubernetes - 无法从 k8s pod ping 域
- ajax - Ajax POST 插入一半数据(一些数据丢失) Asp.Net MVC Ajax
- json - 在同一个ansible剧本中将json字符串从ansible输出传递给python
- java - 尝试用 0 空格替换正则表达式字符串
- html - 当 css 包含“body { ... }”规则时,Windows 10 上的 Internet Explorer 会加载 css 两次
- nlp - IBM Watson Assistant:当我在意图训练问题中使用@entity 时,watson 不会平等对待所有实体值
- node.js - 将 var 服务器传递给另一个 nodejs 模块
- google-chrome - 二级域中特殊字符的编码是什么?
- javascript - NodeJS CSVReader - 带有 csv-parse 的 createReadStream 返回空数组
- c# - 如何限制列表的大小并使用新值循环 FIFO?