и это моя структура БД Насколько я понимаю, ваша база данных имеет следующую структуру:
collection:
document:
casesAndAssociatesData:obj_array
casesObject:obj_array
И вы хотите добавить больше данных в casesObject
. Поскольку casesObject
- это поле документа, вам придется обновлять его каждый раз, когда вы добавляете новые данные.
Таким образом, подход будет следующим:
- Получить все данные из загруженный документ в виде массива карты.
- Добавить еще один элемент в этот массив.
- Обновить все поле
casesObject
новыми данными.
Это пример того, как вы должны изменить свой код:
querySnapshot.forEach(function (doc) {
console.log(doc.id, " => ", doc.data());
//Prepare the new data that you want to add :
var newCasesObject = {
casesPoliceStation: "New police station Value",
crimeNumber: "New crime value",
sectionOfLaw: "New section of law",
stage: "ss",
}
//Get the array with data from the loaded document
var dataObj = doc.data().casesObject;
//Push the new data to that array
dataObj.push(newCasesObject);
//Call another function that will update the document with the new data
updateData(doc.id, dataObj);
});
//The new update function:
async function updateData(docID, obj){
const cityRef = db.collection('[COLLECTION_NAME]').doc(docID);
// Set the 'capital' field of the city
const res = await cityRef.update({casesObject: obj});
}
Я протестировал это в своей базе данных, и он работает, как вы описали. Он обновляет только поле casesObject
при каждом добавлении новых данных карты.