如何在循环云Firestore中设置多个文档

时间:2019-07-30 17:44:22

标签: javascript firebase google-cloud-firestore google-cloud-functions

好吧,我正在运行一个循环:

...

       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” ...,但是在文档内部,所有字段均来自上一个文档!

如何解决?

0 个答案:

没有答案