我已经设法采取了使用离子相机API的照片:
async pickImage(sourceType: CameraSource) {
const image = await Camera.getPhoto({
quality: 90,
allowEditing: true,
resultType: CameraResultType.Uri,
source: sourceType,
});
console.log(image);
}
结果是这样的
我也发现使用angular fire存储上传,但我不知道如何连接这两个。我真的不明白什么是介于两者之间的格式,什么格式我应该问相机API和什么格式我应该提供给AngularFireStorage API。
我试过这个:
const filePath = 'name-your-file-path-here';
const ref = this.storage.ref(filePath);
const task = ref.put(image.webPath);
task
.snapshotChanges()
.pipe(finalize(() => console.log(ref.getDownloadURL())))
.subscribe();
但我得到这个错误:
ERROR Error: Uncaught (in promise): FirebaseStorageError: {"code_":"storage/invalid-argument","message_":"Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File.","serverResponse_":null,"name_":"FirebaseError"}
你的灯将会非常感谢:)
2条答案
按热度按时间lmyy7pcs1#
那个“webpath”不是一个文件或者blob,你需要在调用put之前转换它。在ionic网站上有一个如何转换它的例子
https://ionicframework.com/docs/angular/your-first-app/3-saving-photos
8dtrkrch2#
这是我的示例代码,运行良好,希望对您有所帮助
和这里我的代码为php服务器
具有DataUrl结果类型的