我在我的 RN 应用程序中使用了 react-native-firebase
库
我使用 Firebase Storage 将图像保存在云中,所以它工作得很好,但是
在个人资料屏幕中,我有一个编辑功能,可以用新图像替换旧图像,但它只是将新图像添加到 Firebase Cloud Storage 而不是替换它
那么有没有办法用新的替换旧的?
因为我不想在用户更改他的图像配置文件时增加我的存储空间
这是我保存新图像配置文件的功能
EditImg = async () => {
const {uid, avatar} = this.state;
let providerRef = database().ref(`Providers/users/${uid}`);
const path = 'Avatar_' + new Date().getTime() + '.jpg';
const ref = storage().ref(`providers/${uid}/providerGalary/${path}`);
await ref.putFile(avatar).then(() => {
ref.getDownloadURL().then(
img => {
console.log('img', img);
providerRef
.update({
avatar: img,
})
.then(() => console.log('saved to Db Successfully'));
},
error => console.log(error),
);
});
};
最佳答案
改变这个:
const path = 'Avatar_' + new Date().getTime() + '.jpg';
const ref = storage().ref(`providers/${uid}/providerGalary/${path}`);
await ref.putFile(avatar).then(() => {
进入这个:
const path = 'Avatar_' + uid + '.jpg';
const ref = storage().ref(`providers/${uid}/providerGalary/${path}`);
await ref.putFile(avatar).then(() => {
使用 uid
而不是新的 Date
,因为 uid
将保持不变,因此您将能够替换图像而不是添加一个新的
关于javascript - 我们如何更新 firebase 云存储中的现有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59456890/