Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们如何更新firebase云存储中的现有映像?_Javascript_Reactjs_Firebase_React Native_Firebase Storage - Fatal编程技术网

Javascript 我们如何更新firebase云存储中的现有映像?

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

我在我的RN应用程序中使用了
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
而不是new
Date
,因为
uid
将保持不变,因此您将能够替换图像而不是添加一个新图像每次都会产生一个新名称。如果你不想这样,把它改成固定的名字。哎哟,我忘了这件事,谢谢你:')