图像未在 Firebase 存储中保存为 jpeg
Posted
技术标签:
【中文标题】图像未在 Firebase 存储中保存为 jpeg【英文标题】:Image not saved as jpeg in firebase storage 【发布时间】:2020-12-04 09:57:39 【问题描述】:我目前正在从事一个使用 cordova 相机的离子项目。我可以拍摄图像,存储在离子存储中,也可以上传到 Firebase 存储。但是,图像不会保存为jpeg
,而是保存为application/octet-stream
。
takePicture()
const options: CameraOptions =
quality: 100,
destinationType: this.camera.DestinationType.DATA_URL,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE
this.camera.getPicture(options).then((imageData) =>
console.log(imageData)
// Add new photo to gallery
this.photos.unshift(
data: 'data:image/jpeg;base64,' + imageData
);
// Save all photos for later viewing
this.storage.set('photos', this.photos);
//save to firebase storage
const storageRef = firebase
.storage()
.ref('photos/img.jpeg')
storageRef.putString(imageData, 'base64'),
contentType: 'image/jpeg'
, (err) =>
// Handle error
console.log("Camera issue: " + err);
);
【问题讨论】:
【参考方案1】:根据 API 文档,putString() 采用三个参数:
参数
数据:字符串要上传的字符串。
可选格式:StringFormat要上传的字符串的格式。
可选元数据:UploadMetadata新上传对象的元数据。
第三个参数是您指定内容类型的位置。现在,您正在传递两个参数,而内容类型不是其中的一部分。看起来你的右括号放错了地方:
storageRef.putString(imageData, 'base64',
contentType: 'image/jpeg'
);
【讨论】:
谢谢,Doug,正如你所提到的,错误是由于右括号造成的。由于三个参数中的两个是可选的,因此我能够摆脱我的两个参数。以上是关于图像未在 Firebase 存储中保存为 jpeg的主要内容,如果未能解决你的问题,请参考以下文章
使用 getData() 从 Firebase 存储下载 jpeg 图像时出现错误 13010“对象不存在”
将图像链接从 Firebase 存储存储到 Firebase 数据库时出错