javascript - 我们如何更新 firebase 云存储中的现有图像?

标签 javascript reactjs firebase react-native firebase-storage

我在我的 RN 应用程序中使用了 react-native-firebase

我使用 Firebase Storage 将图像保存在云中,所以它工作得很好,但是

在个人资料屏幕中,我有一个编辑功能,可以用新图像替换旧图像,但它只是将新图像添加到 Firebase Cloud Storage 而不是替换它

那么有没有办法用新的替换旧的?

因为我不想在用户更改他的图像配置文件时增加我的存储空间

S

这是我保存新图像配置文件的功能

 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/

相关文章:

javascript - innerHTML unencodes < in attributes

javascript - 从 JSON 对象获取最大值 D3JS

javascript - 我应该在哪里声明在 useEffect() Hook 中调用的函数?

firebase - 执行 flutter run 时获取此日志输出的原因是什么 - 与设备失去连接 - ?

firebase - 添加更多非规范化后更新 Firebase 数据库当前数据的最佳实践

javascript - 使用 JavaScript 插入新的一行输入标签

javascript - 输入表单以更改 javascript 中的相对 URL

reactjs - 渲染后如何在formik中触发验证?

reactjs - antd - 如何在自定义字体图标中生成 scriptUrl

Firebase - 什么是 API key