Javascript 我们如何更新firebase云存储中的现有映像?
我在我的RN应用程序中使用了Javascript 我们如何更新firebase云存储中的现有映像?,javascript,reactjs,firebase,react-native,firebase-storage,Javascript,Reactjs,Firebase,React Native,Firebase Storage,我在我的RN应用程序中使用了react native firebaselib 我使用Firebase存储将图像保存到云中,所以它工作得很好,但是 在配置文件屏幕中,我有一个编辑功能,可以用新图像替换旧图像,但它只是将新图像添加到Firebase云存储中,而不是替换它 那么,有没有办法用新的取代旧的呢 因为我不想在用户更改其图像配置文件时增加存储空间 这是我的保存新图像配置文件的函数 EditImg = async () => { const {uid, avatar} = th
react native firebase
lib
我使用Firebase存储将图像保存到云中,所以它工作得很好,但是
在配置文件屏幕中,我有一个编辑功能,可以用新图像替换旧图像,但它只是将新图像添加到Firebase云存储中,而不是替换它
那么,有没有办法用新的取代旧的呢
因为我不想在用户更改其图像配置文件时增加存储空间
这是我的保存新图像配置文件的函数
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
而不是newDate
,因为uid
将保持不变,因此您将能够替换图像而不是添加一个新图像代码>每次都会产生一个新名称。如果你不想这样,把它改成固定的名字。哎哟,我忘了这件事,谢谢你:')