Добавить ссылку на файл в базу данных - PullRequest
1 голос
/ 03 октября 2019

Я хочу добавить ссылку на загруженное изображение в базу данных firestore. Мой код загружает изображение в хранилище Firebase, но не сохраняет данные в базе данных. Я получаю сообщение об ошибке:

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

1 Ответ

2 голосов
/ 03 октября 2019

Вы, вероятно, просто хотите сохранить полный путь ссылки, с thisRef.fullPath, так как это простая строка, а не полный объект.

Чтобы позже перевести это на объект, который вы могли прочитать, вы бы сделали что-то вроде:

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

Это, очевидно, предполагает, что корзина не изменилась - в противном случае вам также потребуется сохранить имя корзины.

Подробнеездесь: https://firebase.google.com/docs/storage/web/create-reference.

...