Angular 2 - Firebase 存储 -putString() 方法支持元数据?

问题描述 投票:0回答:2

我的 ionic 2 应用程序中有一个简单的功能,可以将文件上传到我的 firebase 存储服务器。它从相机中获取图像的 Base64 编码字符串,但是当我不尝试强制使用

content-type
时,它默认为
application/octet-stream
。当我尝试将元数据添加到
putString()
方法时,出现错误。

有谁知道我如何用

putString
做到这一点?

这是我当前的功能:

uploadProfilePhoto(file) {
    this.storage.get('user').then(user => {
      let id = user.id;

      var metadata = {
        contentType: 'image/jpeg',
      };

      let userProfileRef = this.fbStorage.ref(`/users/${id}/profile_photo/profile_photo.jpg`);
      userProfileRef.putString(file, metadata).then(snapshot => {
      }).catch(error => {
      });
    })
  }
angular firebase ionic2 firebase-storage
2个回答
11
投票

因此,我缺少一个指定 base64 的参数。这是更新的功能:

uploadProfilePhoto(file) {
    this.storage.get('user').then(user => {
      let id = user.id;

      var metadata = {
        contentType: 'image/jpeg',
      };

      let userProfileRef = this.fbStorage.ref(`/users/${id}/profile_photo/profile_photo.jpg`);
      userProfileRef.putString(file, 'base64', metadata).then(snapshot => {
      }).catch(error => {
      });
    })
  }

0
投票

此外,您应该添加自定义元数据值,如下所示:

var metadata = {
    contentType: 'image/jpeg',
    customMetadata: {
        foo: "bar"
    }
};

为了正确存储

© www.soinside.com 2019 - 2024. All rights reserved.