В цикле For ... добавляются ключи вместо значений при отправке в Firestore - PullRequest
0 голосов
/ 27 января 2019

У меня есть объект, который содержит некоторые переменные и массив.Я пытаюсь добавить данные в 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

1 Ответ

0 голосов
/ 27 января 2019

Используется для… of для перебора значений в итерируемом

Изменение

for(let block in newBlocks){

на

 for(let block of newBlocks){

для ... в переборах объектаключи, следовательно, для ... правильного в вашем случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...