【发布时间】:2018-04-13 19:08:55
【问题描述】:
我正在尝试将图像上传到 Firebase 存储并将一些特定元数据保存到 Firebase Cloud。 我正在用 JavaScript 编码。
目标是为 Firebase Cloud 设置自定义元数据,例如从用户必须填写的文本输入字段。
这就是我将图像存储到 Firebase 存储的方式:
storageRef.child('images/' + file.name).put(file, metadata).then(function(snapshot) {
console.log('Uploaded', snapshot.totalBytes, 'bytes.');
console.log(snapshot.metadata);
var url = snapshot.downloadURL;
console.log('File available at', url);
// [START_EXCLUDE]
document.getElementById('linkbox').innerHTML = '<a href="' + url + '">Click For File</a>';
// [END_EXCLUDE]
}).catch(function(error) {
// [START onfailure]
console.error('Upload failed:', error);
// [END onfailure]
});
// [END oncomplete]
}
我不知道如何在上传功能中集成另一个任务以将元数据写入 Firebase Cloud。 任何帮助将不胜感激!
@eykjs @Sam Storie:感谢您的帮助。 我改变了我的代码。现在,有一个我无法弄清楚的错误,是什么问题。 错误:TypeError: undefined is not an object (evalating 'selectedFile.name')
我的代码:
var selectedFile;
function handleFileSelect(event) {
//$(".upload-group").show();
selectedFile = event.target.files[0];
};
function confirmUpload() {
var metadata = {
contentType: 'image',
customMetadata: {
'dogType': 'Lab',
'title': $("#imgTitle").val(),
'caption': $("#imgDesc").val()
},
};
var uploadTask = firebase.storage().ref().child('dogImages/' + selectedFile.name).put(selectedFile, metadata);
uploadTask.on('state_changed', function(snapshot){
}, function(error) {
} );
}
我的 selectedFile 定义有什么问题? 非常感谢您的帮助。
【问题讨论】:
标签: javascript firebase metadata firebase-storage google-cloud-firestore