我想将上传的图像的图像参考添加到firestore数据库中。我的代码将图像上传到Firebase存储中,但没有将数据保存到数据库中。我收到错误消息:
未捕获的FirebaseError:函数DocumentReference.set()用无效数据调用。不支持的字段值:自定义je对象(在“字段图片”中找到)
正确的方法是什么?
请参见以下代码:
console.log("Initialisation Successful!");
var db = firebase.firestore();
var storageRef = firebase.storage().ref().child('Images');
function addExercise(){
var exerciseName = document.getElementById("ename").value;
var exercisePart = document.getElementById("body_part").value;
var exerciseLevel = document.getElementById("elevel").value;
var file = document.getElementById("eimage").files[0];
var thisRef = storageRef.child(file.name);
thisRef.put(file).then(function(snapshot) {
console.log('done!' + thisRef );
});
db.collection("Exercises").add({
Name: exerciseName,
BodyPart: exercisePart,
Level: exerciseLevel,
Image: thisRef
})
.then(function(){
console.log("Data entered successfully!");
})
.catch(function(error){
console.error("Error!", error);
});
}
答案 0 :(得分:2)
您可能只想用thisRef.fullPath
保存引用的完整路径,因为这是一个简单的字符串而不是完整的对象。
要稍后将其转换为您可以阅读的对象,可以执行以下操作:
firebase.storage().ref().child(fullPath)
这显然是假设存储桶没有更改-否则,您还需要存储存储桶名称。
在此处查看更多详细信息:https://firebase.google.com/docs/storage/web/create-reference。