【问题标题】:How can we update the existing image in firebase cloud storage?我们如何更新 Firebase 云存储中的现有图像?
【发布时间】:2019-12-23 14:22:19
【问题描述】:

我在我的 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'; 每次都会改名。如果您不想这样,请将其更改为固定名称。
  • 哎呀,我忘了这件事,谢谢你:')

标签: javascript reactjs firebase react-native firebase-storage


【解决方案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 将保持不变,因此您可以替换图像而不是添加新图像

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 2021-12-20
    • 2022-01-11
    • 2021-07-31
    • 2019-01-23
    • 2020-06-05
    • 2020-12-07
    • 1970-01-01
    相关资源
    最近更新 更多