【问题标题】:Add file reference into database将文件引用添加到数据库中
【发布时间】:2020-02-02 03:04:07
【问题描述】:

我想将我上传的图片的图片参考添加到 Firestore 数据库中。我的代码正在将图像上传到 firebase 存储中,但没有将数据保存到数据库中。我收到错误消息:

未捕获的 FirebaseError:使用无效数据调用函数 DocumentReference.set()。不支持的字段值:自定义 je 对象(在字段 Image 中找到)

这样做的正确方法是什么?

请看下面的代码:

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);
    });
} 

【问题讨论】:

    标签: javascript firebase google-cloud-firestore firebase-storage


    【解决方案1】:

    您可能只想使用thisRef.fullPath 保存引用的完整路径,因为这是一个简单的字符串而不是完整的对象。

    为了稍后将其转换为您可以阅读的对象,您可以执行以下操作:

    firebase.storage().ref().child(fullPath)
    

    这显然假设存储桶没有更改 - 否则您还需要存储存储桶名称。

    在此处查看更多详细信息:https://firebase.google.com/docs/storage/web/create-reference

    【讨论】:

    • 您好 rosiemb,非常感谢您的帮助。你的解决方案奏效了。
    猜你喜欢
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    相关资源
    最近更新 更多