У меня есть объект, который содержит некоторые переменные и массив.Я пытаюсь добавить данные в Firebase.Firebase не понравился массив.Моим решением было преобразовать массив в объект и отправить значения объекта в массив в Firestore, используя цикл For ... in и запрос к массиву Firestore.Это почти сработало, но по какой-то причине мой код добавляет имена ключей вместо значений. Что я делаю не так?
let projectId = Math.floor(Math.random() * 10000);
let docTitle = this.projectTitle.title;
this.pages.forEach((page) => {
let pageT = page.pageTitle;
let pageD = page.pageDesc;
let id = page.id;
let blocks = page.blocks;
db.collection(docTitle + projectId).doc(pageT).set({
page: {pageTitle:pageT, pageDesc: pageD, id:id }
})
.then(function() {
console.log("Document successfully written!");
})
.catch(function(error) {
console.error("Error writing document: ", error);
});
// Converts array into object and adds object values to an array in firestore
let newBlocks = Object.assign({}, blocks);
for(let block in newBlocks){
db.collection(docTitle + projectId).doc(pageT).update({
blocks: firebase.firestore.FieldValue.arrayUnion(block)
})
}
})
Вот документы Firestore по обновлению массивов: https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array