如何删除包含所有集合和嵌套子集合的文档? (在函数环境内)
在 RTDB 中,您可以 ref.child('../someNode).setValue(null)
这样就完成了所需的行为。
我可以想到两种方法来实现所需的删除行为,这两种方法都有非常可怕的缺点。
这个函数会很复杂,不容易改变,并且可能需要很长时间的执行时间。
想象一下,您必须删除一个“GROUP”及其所有子项。 #1 会非常困惑,#2 会很贵(每个文档调用 1 个函数)
groups > GROUP > projects > PROJECT > files > FILE > assets > ASSET
> urls > URL
> members > MEMBER
> questions > QUESTION > answers > ANSWER > replies > REPLY
> comments > COMMENT
> resources > RESOURCE > submissions > SUBMISSION
> requests > REQUEST
是否有一种更高级/更受欢迎/更清洁的方法来删除文档及其所有嵌套的子集合?
考虑到您可以从控制台执行此操作,这应该是可能的。
最佳答案
根据firebase文档:
https://firebase.google.com/docs/firestore/solutions/delete-collections
删除带有嵌套子集合的集合可能会在服务器端使用 node-JS 轻松而整洁地完成。
const client = require('firebase-tools');
await client.firestore
.delete(collectionPath, {
project: process.env.GCLOUD_PROJECT,
recursive: true,
yes: true
});
关于firebase - 在 Firestore 中删除包含所有子集合和嵌套子集合的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49286764/