У меня есть следующий код в облачной функции, которая возвращает сообщение об ошибке с сообщением
Ошибка: 3 INVALID_ARGUMENT: максимально 500 записей разрешено на запрос
console.log(`${projectId} doClassifySources: Got ${_.size(output)} items`)
const lastClassification = new Date().toJSON()
const batch = firestore.batch()
batch.update(projectRef, {lastClassification})
_.forEach(output, item => {
batch.set(projectRef.collection('output').doc(encodeURIComponent(item.url)), {
classifiedAt: admin.firestore.FieldValue.serverTimestamp(),
...item
}, {
merge: true
})
})
return batch.commit().then(() => lastClassification)
Тем не менее, журналы Firebase показывают это прямо перед выдачей ошибки:
12:28:19.963 PM classifySources ZklZYB5hq96J43CroKgP doClassifySources: Got 310 items
Мне кажется, что партия должна содержать 310 элементов, что значительно ниже предела 500.Я что-то упускаю в том, как рассчитывается этот лимит в 500 предметов?merge: true
влияет на это каким-либо образом?Связано ли это с распространением item
в записываемом объекте (т. Е. Увеличивает ли это количество необходимых записей)?