Ionic Camera 生成的字符串 URL 大小太大而无法在 Firebase 中存储(作为字符串)

Ionic Camera generated string URL size too big to store (as a string) in Firebase

我正在使用 ionic camera 插件 https://ionicframework.com/docs/native/camera 捕获图像并将其存储到 Firebase 中,但是当我上传大小大于 2 mb 的图像文件时,在存储到 Firebase 时出现错误字符串长于 1048487 字节。 关于如何缩短字符串 URL 大小或任何其他存储蚂蚁大小图片的方法的任何建议。

我的代码:

takePicture()
 {

   const options: CameraOptions = {
   quality: 30,
   destinationType: this.camera.DestinationType.DATA_URL,
   encodingType: this.camera.EncodingType.JPEG,
   mediaType: this.camera.MediaType.PICTURE,
   allowEdit: true,
   sourceType: 1,
   saveToPhotoAlbum: false,
};
   this.camera.getPicture(options).then((imageData) => {
   this.cardopen = !this.cardopen;
   this.takephoto = 'data:image/jpeg;base64,' + imageData;
console.log(this.takephoto);
}, (err) => {
  console.log(err);
});
}

歌剧DOM:

core.js:4197 ERROR Error: Uncaught (in promise): FirebaseError: [code=invalid-argument]: The value of 
 property "ImageUrl" is longer than 1048487 bytes.
FirebaseError: The value of property "ImageUrl" is longer than 1048487 bytes.

String Image

您应该先将图片上传到 firebase 存储。之后,您将下载 url 保存在您的 firestore 文档中以显示图像。
Upload to firebase storage

使用 firebase 存储,您对数据大小没有限制。缺点是图像加载速度慢,但您可以创建一个 firebase 函数来进行一些图像处理以生成缩略图。

甚至为此 firebase 创建了一个 extension 来调整图像大小。