首页 > 解决方案 > 如何删除firestore集合数据库中的所有文档

问题描述

我使用 Firestore 数据库来存储和检索数据。每天晚上,Firestore 集合中都需要有可用的新数据集(文档)。那么有什么方法可以一次完全删除集合中的所有现有文档。

我试过那里的文档,它说我们需要一个一个地删除,这是不可能的。因为文档 ID 是自动生成的。

以下是来自documantaion的代码。

var cityRef = db.collection('cities').doc('BJ');

// Remove the 'capital' field from the document
var removeCapital = cityRef.update({
    capital: firebase.firestore.FieldValue.delete()
});

那么有什么方法可以删除给定火力基地集合中的整个文档?

我尝试使用上面的代码,但出现以下错误。

(index):63 Uncaught ReferenceError: Firestore is not defined
    at myFunction ((index):63)
    at HTMLParagraphElement.onclick ((index):57)

下面是我的代码:

<p id="demo" onclick="myFunction()">Click me.</p>

<script>


function myFunction() {

describe("firestore", () => {
    var db;
    before(() => {
        var config = {
            apiKey: "xxxx",
            aauthDomain: "xxxxfirebaseapp.com",
            projectId: "xxx",
        };
        var app = firebase.initializeApp(config);
        db = firebase.firestore(app);
        //firebase.firestore.setLogLevel("debug");
    });


db.collection('Headings').get().then(querySnapshot => {
    querySnapshot.docs.forEach(snapshot => {
        snapshot.ref.delete();
    })
})
}
</script>

标签: javascriptgoogle-cloud-firestore

解决方案


文档是正确的:您必须单独删除文档。这并非不可能——您只需先查询所有文档,然后删除每个文档。例如:

db.collection('cities').get().then(querySnapshot => {
    querySnapshot.docs.forEach(snapshot => {
        snapshot.ref.delete();
    })
})

推荐阅读