我想将我上传图片的图片引用添加到 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);
});
}
最佳答案
您可能只想使用 thisRef.fullPath
保存引用的完整路径,因为这是一个简单的字符串而不是完整的对象。
稍后要将其转换为您可以阅读的对象,您可以执行以下操作:
firebase.storage().ref().child(fullPath)
这显然假设存储桶没有改变——否则您还需要存储存储桶名称。
在此处查看更多详细信息:https://firebase.google.com/docs/storage/web/create-reference .
关于javascript - 将文件引用添加到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58225145/