如何递归删除firestore中的集合?

Ale*_*gli 11 firebase google-cloud-firestore

我需要一种方法来快速清除整个 firestore 数据库,但找不到有关如何执行此操作的详细文档。最终我在堆栈溢出上找到了这个答案(清除所有数据的 Firestore 数据库?),但对清除数百万个文档的整个数据库需要多长时间感到有点紧张,所以我想要一种方法来递归删除集合一次。

背景:我一直在运行一些测试,将大量数据从旧数据库迁移到 firestore,每次运行后我都希望在 firestore 中使用干净的状态。不要在生产数据上使用它!

kga*_*dis 42

现在通过函数记录这一点recursiveDelete

请注意,这是一个相对较新的功能,因此您需要确保您的 Firebase 库已更新。

// Setup
const admin = require('firebase-admin');
const serviceAccount = require("./files/my-file.json");
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});
const firestore = admin.firestore();

// Delete
const documentRef = firestore
      .collection("users")
      .doc("M3S2iPhsiu2ZQmOK8ZcC");
await firestore.recursiveDelete(documentRef);
Run Code Online (Sandbox Code Playgroud)

  • 哇,这太漂亮了。我希望这个问题和答案可以被推到 SO 的顶部以删除子集合。我觉得这里98%的答案仍然解释了批量删除子集合中单个文档的过于繁琐的过程。对我来说工作又快又漂亮。 (4认同)
  • 奇怪的是,这仍然不在文档中,但请确保升级您的 firebase admin sdk,否则您将无法访问此内容 (2认同)