问题描述
我目前正在使用AngularFire将我的图片上传到Firebase存储,然后使用firebase图片调整大小扩展名调整大小。这对于200x200的个人资料图片效果很好。
我现在要上传其他图片,并调整其尺寸为500x500。
我制作了另一个存储桶,并安装/配置了Firebase扩展的另一个实例,以将尺寸上传到新存储桶的尺寸调整为500x500。
我不知道如何在应用程序的存储桶之间进行切换,因此我可以将个人资料图像上传到一个存储桶中,而将其他图像上传到另一个存储桶中。
有人能用AngularFire做到这一点吗?
注意: -我知道您可以使用firebase JS SDK(原始firebase)来执行此操作,但如果可能的话,我想使用AngularFire来执行此操作,以避免更改我的代码。
-我也知道您可以使用一个调整大小扩展实例指定多个调整大小分辨率,但这会创建大量不必要的图像,因为每次上传都会创建200x200和500x500。
解决方法
据我所知,使用AngularFire无法完全做到这一点。 我最终重构了代码,以将原始Firebase用于此特定部分。它非常相似,但是调用和对象与我在AngularFire中使用的不同。
constructor(private afStorage: AngularFireStorage) {
this.defaultBucket = this.afStorage.storage.app.storage();
this.otherBucket = this.afStorage.storage.app.storage(OTHER_BUCKETNAME);
}
const storageRef = this.otherBucket.ref().child(FILENAME);
storageRef.put(file).then((snapshot) => {
console.log('Uploaded a blob or file!',snapshot);
}