好吧,我正在运行一个循环:
...
if (buyerType === 'coletiva') {
let counter = 0
let buyersInfo = allPurchase.friends
let promises = []
let db = admin.firestore()
let batch = db.batch()
buyersInfo.forEach(runner => {
let purchaseInfo = allPurchase
let purchaseFunction = {}
counter = counter + 1;
console.log('counter é:', counter)
delete purchaseInfo.friends
purchaseInfo.priceCents = runner.price
purchaseInfo.totalTaxPaid = 600
purchaseInfo.iuguTaxPaid = 198
purchaseInfo.kmaisTaxPaid = 402
purchaseInfo.status = 'paid'
purchaseInfo.runnerCpf = runner.runnerCpf
purchaseInfo.modality = runner.modality
purchaseInfo.sex = runner.sex
purchaseInfo.age = runner.age
purchaseInfo.birth = runner.birth
purchaseInfo.buyerName = runner.buyerName
console.log('número de corredor é:', (oldCounter + counter))
purchaseInfo.runnerNumber = (oldCounter + counter)
console.log('purchase info:', purchaseInfo)
batch.set(admin.firestore().collection('purchases').doc(`${purchaseId}` + '_' + counter), purchaseInfo)
})
return batch.commit()
}
“ oldCounter +计数器”必须是普通数字。
例如:
我有一个带有3个运行器的循环,oldCounter +计数器必须为:1 ... 2 ... 3 ...显示正确(如我在Firebase Console中所看到的那样,它们工作正常),但是当Firebase运行时在数据库上设置文件,文件具有相同的价值!! (runnerNumber总是返回最后一个数字,例如3)。
为什么Firebase只能设置数组中的最后一个字段,而不设置其他文档?
正在创建“ documentKey_1”,“ documentKey_2”,“ documentKey_3” ...,但是在文档内部,所有字段均来自上一个文档!
如何解决?