【发布时间】:2020-09-22 03:13:33
【问题描述】:
我正在尝试在集合中更新,那里有 1400 多个办公室,在检查并运行查询后,我在集合文档中更新并在查询后在子集合中更新,但有时我会收到此错误 10 中止:对这些文件的争论过多。请再试一次。 我只是使用批处理在文档中编写这里是我在集合中更新的代码。
batch.set(
rootCollections.x.doc(getISO8601Date())
.collection(subCollection.y)
.doc(change.after.get('Id')),
{
officeId: change.after.get('Id'),
office: change.after.get('office'),
status: change.after.get('status'),
creationTimestamp:
change.after.get('creationTimestamp') ||
change.after.get('createTimestamp') ||
change.after.get('timestamp'),
activeUsers: [...new Set(phoneNumbers)].length,
confirmedUers: activityCheckinSubscription.docs.length,
uniqueActivities: [...new Set(activities)].length,
payments: 0,
contact: [
`${change.after.data().creator.phoneNumber},${
change.after.data().attachment['First Contact'].value
}`,
],
},
{ merge: true },
);
batch.set(
rootCollections.x.doc(getISO8601Date()),
{
Added: admin.firestore.FieldValue.increment(1),
},
{ merge: true },
);
PromiseArray.push(batch.commit());
await Promise.all(PromiseArray);
【问题讨论】:
标签: node.js google-cloud-firestore google-cloud-functions