Javascript 通过云函数删除整个集合 通过在云函数中创建的函数删除集合
当用户被删除时,我需要删除包含多个文档的整个集合,因此我决定创建一个函数,以便在用户被删除时触发该函数 下面是代码 (index.js): 尝试执行firebase部署命令时——仅函数会发生以下错误: 65:11警告箭头函数预期无返回值一致返回 65:18警告避免嵌套承诺承诺/不嵌套 69:11错误Each then()应返回值或抛出承诺/始终返回 ✖ 3个问题(1个错误,2个警告) 我做错了什么? 删除用户时,如何删除整个集合? 如果您能按照我应该应用的逻辑发布上述代码,我将不胜感激。请执行以下操作:Javascript 通过云函数删除整个集合 通过在云函数中创建的函数删除集合,javascript,node.js,firebase,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Functions,当用户被删除时,我需要删除包含多个文档的整个集合,因此我决定创建一个函数,以便在用户被删除时触发该函数 下面是代码 (index.js): 尝试执行firebase部署命令时——仅函数会发生以下错误: 65:11警告箭头函数预期无返回值一致返回 65:18警告避免嵌套承诺承诺/不嵌套 69:11错误Each then()应返回值或抛出承诺/始终返回 ✖ 3个问题(1个错误,2个警告) 我做错了什么? 删除用户时,如何删除整个集合? 如果您能按照我应该应用的逻辑发布上述代码,我将不胜感激。请执行以
const db = admin.firestore();
exports.onUserDeleted = functions.auth.user().onDelete((user) => {
const collectionRef = db.collection(user.uid);
var promises = [];
return collectionRef.get()
.then(qs => {
qs.forEach(docSnapshot => {
promises.push(docSnapshot.ref.delete());
});
return Promise.all(promises);
})
.catch(error => {
console.log(error);
return false;
});
});
正如您的代码所反映的,以及文档中所建议的(参见下面的摘录),如果收集量很大,您可以批量删除文档。如果你认为有必要的话,我让你修改上面的代码,
如果有较大的集合,则可能希望以较小的批删除文档,以避免内存不足错误。重复
处理,直到删除整个集合或子集合。
资料来源:
const db = admin.firestore();
exports.onUserDeleted = functions.auth.user().onDelete((user) => {
const collectionRef = db.collection(user.uid);
var promises = [];
return collectionRef.get()
.then(qs => {
qs.forEach(docSnapshot => {
promises.push(docSnapshot.ref.delete());
});
return Promise.all(promises);
})
.catch(error => {
console.log(error);
return false;
});
});