我正在尝试通过任何分析和解析从文件中写入多个批处理。问题是我要执行500多次写操作,因此我尝试分批执行。我认为我执行提交的结构不正确,因为我无法使它正常工作。
如果我只执行提交(没有将它作为return语句的一部分),则什么也没有发生,并且出现以下错误
Error: 4 DEADLINE_EXCEEDED: Deadline Exceeded
,如果我返回了提交(如承诺,不确定语法是否正确),则第一个返回的提交将执行,但不允许连续执行。
一旦解决了较大的问题,用objectValue.length
加上“ -1”和“ -2”的原因与我计划清理的文件和空白行有关。
我认为我的失败在于正确构造代码以重复执行。
var j = 0;
var batchCounter = [];
var commitCounter = 0;
batchCounter[commitCounter] = docRef2.batch();
console.log("BACH");
for (var i = 0; i < objectValue.length-1; i++) {
const barcode = objectValue[i].Barcode;
const description = objectValue[i].Description;
const price = objectValue[i].Price;
const taxable = objectValue[i].Taxable;
const ref =docRef2.doc(`/sunshine_market/items/item/${String(barcode)}`);
batchCounter[commitCounter].set(ref, {"barcode" : barcode, "description" : description, "price" : price, "taxable" : taxable, "number" : i});
j += 1;
if (j === 500 || i == (objectValue.length-2)) {
console.log("BACH2", j);
console.log("BACH5", commitCounter);
console.log("BACH4", batchCounter[commitCounter]);
//When I have the return only one commit executes but without none do
return batchCounter[commitCounter].commit().then(function () {
console.log("YEEZY");
})
commitCounter += 1;
batchCounter[commitCounter] = docRef2.batch();
j = 0;
}
}
编辑:
这个问题绝不是重复的。这些链接已有将近一年的历史,对于已经通过Beta测试的产品,它们已经过时了。最重要的是,提供给的链接实际上尚未接受解决方案。他们讨论了这个问题,但没有解决。