我目前正在尝试将一张照片上传到我的Apache Cordova应用程序中Firebase应用的存储中。我目前使用以下代码获取照片的URI:
function getPhotoFromAlbum() {
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
quality: 50,
sourceType: navigator.camera.PictureSourceType.SAVEDPHOTOALBUM,
destinationType: navigator.camera.DestinationType.FILE_URI
});
}
function onPhotoURISuccess(imageURI) {
var image = document.getElementById('image');
image.style.display = 'block';
image.src = imageURI;
getFileEntry(imageURI);
}
然后我尝试将图像转换为文件,并使用以下函数将其推送到Firebase存储:
function getFileEntry(imgUri) {
window.resolveLocalFileSystemURL(imgUri, function success(fileEntry) {
console.log("got file: " + fileEntry.fullPath);
var filename = "test.jpg";
var storageRef = firebase.storage().ref('/images/' + filename);
var uploadTask = storageRef.put(fileEntry);
}, function () {
// If don't get the FileEntry (which may happen when testing
// on some emulators), copy to a new FileEntry.
createNewFileEntry(imgUri);
});
}
我已安装了文件和相机 Cordova 插件,但在尝试执行此操作时,唯一遇到的错误是
Error in Success callbackId: File1733312835 : [object Object]
这只是 cordova.js 的一个错误信息。
我也知道我的 Firebase 存储设置正确,因为我通过模拟器测试了它,通过添加文件输入并成功上传用户添加的任何文件到 Firebase 存储。
是否可以使用将图像转换为文件的 URI 的方法上传文件到 Firebase 存储?如果可以,那么正确的方式是什么 / 我现在的方式有什么问题?