【问题标题】:How to update an image in firebase storage?如何更新 Firebase 存储中的图像?
【发布时间】:2021-07-18 22:22:10
【问题描述】:
我正在开发一个带有 Angular 的图片库应用,我希望能够对每张图片及其描述执行 CRUD 操作。我的图片存储在 firebase 存储,描述和图片 URL 存储在 Firestore。
我需要能够更新图像,然后,我将更改传递给前端的图像 URL,但我只知道 上传 strong> 图像方法。
更新存储中的图像的最佳做法是什么?
我想到了一种解决方法,我可以删除旧图像并上传新图像,但我希望有更好的方法和正确的方法。
【问题讨论】:
标签:
angular
firebase
google-cloud-firestore
firebase-storage
【解决方案1】:
其实有一个更新方法。有时 Firebase Firestore 数据库会在图像更新之前更新,因此需要在此 Firebase 存储 put 方法完成后运行 Firestore 函数。所以需要使用future方法:
void uploadToStorage(CurrentUser user) {
final dateTime = DateTime.now();
final userId = user.id;
final path = '$userId/$dateTime';
uploadImage(
onSelected: (file) {
fb
.storage()
.refFromURL('gs://your-app.appspot.com/')
.child(path)
.put(file)
.future
.then((_) {
FirebaseFirestore.instance
.collection('users')
.doc(user.id)
.update({'photo_url': path});
});
},
);
此代码是从 Github repo 中提取的,如果您想深入了解的话。