Я пытаюсь вставить массив в мою коллекцию Firebase из облачной функции. Мне нужно иметь несколько строк в одном документе, поэтому для каждой строки я вставляю массив. Пожалуйста, проверьте мой прикрепленный скриншот, где вы можете видеть line0, так же, как мне нужно, чтобы Line1, Line2, Line3 .., Line n были в том же документе.
для line0 я передаю массив из кода, как показано ниже, и его работает нормально.
admin.firestore().collection("qbContestWinners").add(
{
'cmpientryid': context.params.processId,
'qbid': '',
'qbsyncdate': '',
'qbsyncstatus': 'pending',
'Line0':
{
id: "0",
description: 'PRIZE AMOUNT',
amount: 1000,
accountrefid: contestresultData.qbcontestid,
accountrefname: contestresultData.qbcontestname,
contestresultId: context.params.processId,
},
})
когда я зацикливаюсь на данных, которые я получаю из другой таблицы, я не могу сгенерировать правильное значение JSON для вставки.
ниже показано, как я зацикливаюсь и создание JSON после получения данных из другой таблицы.
i = 1;
admin.firestore().collection("results").where('cid', '==', 'LKRRk2XXXXXXXX')
.orderBy("rank", "asc").get().then(snapshots =>
{
snapshots.forEach(doc =>
{
const contestresultId = doc.id;
const prizeAmount = doc.data().prizeamt;
const userId = doc.data().userid;
const lineNum = "Line" + i;
console.log("new line numner is: ", lineNum);
console.log(`lineNum? ${lineNum}`);
const linetxt = "Line" + String(i);
const insertData = "{"+linetxt +
":{id:'" + i +
"', description: 'PRIZE AMOUNT'"+
", amount:" + prizeAmount + "," +
"accountrefid:"+ contestresultData.qbcontestid +","+
"accountrefname:'" +contestresultData.qbcontestname +"',"+
"contestresultId:'" + contestresultId +"'," +
"},}"
const finalInsert = JSON.stringify(insertData);
const finalJSON = JSON.parse(finalInsert);
admin.firestore().collection("qbContestWinners").doc(mainID).set(
finalInsert.toJSON(),
{
merge: true
});
i= i+1;
});
});
с использованием этого кода я получаю ошибку finalInsert.to JSON не является функцией