我在RN应用中使用了react-native-firebase
lib
并且我使用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),
);
});
};
答案 0 :(得分:1)
更改此:
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
将保持不变,因此您将能够替换图像而不是添加新图像