Как я могу перебирать массив и добавлять информацию в firebase после завершения запроса на извлечение на сервер?

# #javascript #firebase #fetch-api

Вопрос:

Я создаю сайт электронной коммерции и хочу обновлять информацию в базе данных firebase, когда клиент покупает группу товаров. до сих пор я узнал, что для обновления данных в хранилище firebase в реальном времени мне придется использовать это

     db = firebase.database().ref('details').child(path);
                db.update({
                          stock: amount you want to update to 
                        })
                        }
 

это полезно, но я хотел обновить несколько файлов на основе того, что было куплено, поэтому я создал функцию для получения информации, которую мне нужно передать, в зависимости от того, что я хотел обновить, что-то вроде этого

 // this is where everything is stored when items() is done doing what it does
var itemsA = {}

function items(arr1, arr2, arr3,arr4){
        arr4 = Object.values(arr4) 
        arr1.forEach((item,index) => {
          itemsA[add  ] = {
            1: arr1[index],
            2: arr3[index],
            3: arr4[index]-arr2[index]
          }
        });
    }

//passes values into items() so itemsA can get populated

items(id,quantityA,path,amountInStock)
itemArray = Object.keys(itemsA);
for( let s = 0; s < itemArray.length; s  ){ 
    db = firebase.database().ref('details').child(itemsA[s][2]);
                db.update({
                          stock: itemsA[s][3] 
                        })
}
 

если бы я поставил значение 4 вместо (itemsA[s][3]) в качестве обновления, это сработало бы, но в ту секунду, когда я передаю переменную, она показывает ошибку, которая возникнет только в том случае, если кто-то выполнит мой запрос к моему api.

Примечание: код выполняется, если запрос на извлечение в платежный api успешен. Есть какие-нибудь идеи или указания? тнх

Комментарии:

1. Попробуйте console.log(itemsA[s][3]) , а что itemArray в ваших кодах?

2. извините, я забыл добавить, itemArray-это Object.keys(itemArray), я сразу добавлю это в свой пост, и я сделал console.log(itema[s][3]) это значение, которое он обновил в firestore, которое я получил, вычитая купленную сумму из суммы на складе

3. Пожалуйста, сначала исправьте свои коды. itemsA[add ] Что add у вас в кодах?