我正在使用Cloud Functions的批处理写入Firestore。 那时,显示错误:4 DEADLINE_EXCEEDED:超过最后期限,并且写入被中断。
看完这个问题后,Error: 4 DEADLINE_EXCEEDED: Deadline Exceeded at Object.exports.createStatusError - GCP我知道错误的内容已达到写配额,但是我不知道如何处理该配额。如果您知道如何解决,请告诉我。
这是我的代码。
exports.batchTest = functions.region('asia-northeast1').pubsub.schedule('every 60 minutes').onRun(async (snapshot, context) => {
let db = admin.firestore();
// Get a new write batch
let batch = db.batch();
const userRef = db.collection('user');
const userQs = await userRef.get();
userQs.forEach(userDocs => {
let userId = userDocs.id;
let likeRef = db.collection('like').doc(userId).collection('like').get().then(docs => {
if (docs.exists) {
const subLikeRef = db.collection('like').doc(userId).collection('like').doc(docs.id);
batch.delete(subLikeRef)
.then(function () {
console.log("success");
return true;
})
.catch(function (error) {
console.error("Error", error);
return true;
});
}
return null;
});
});
// Commit the batch
return batch.commit().then(function () {
// ...
return null;
});
}
);
答案 0 :(得分:0)
此错误与您提出的请求时间过长有关。
为了避免这种情况,您可以修改逻辑以在每次触发函数时写入较小的数据批处理,也可以尝试增加超时值。
您可以查看this firebase documentation和this document来增加超时值。