如何从集合中删除所有文档,而不用Javascript在Firebase中删除集合本身?

时间:2019-04-16 13:13:04

标签: javascript firebase google-cloud-firestore

我有一个名为mouse的集合,其中包含多个文档,这些文档是通过单击文件中的某个位置来添加的。该集合的每个文档的字段为:'type', 'position x', 'position y''timestamp'

我使用以下代码来保存对db的每次单击(换句话说,将新元素放入集合中):

var setData = ref.set({
    'type': 'MC', 
    'x':  xPosition,
    'y': yPosition,
    'timestamp': firebase.firestore.FieldValue.serverTimestamp()
}) 

和此代码以便打印出集合中的所有文档:

db.collection("mouse").where("type", "==", "MC")
    .onSnapshot(function(querySnapshot) {
        var dataPoints = [];
        querySnapshot.forEach(function(doc) {
           dataPoints.push(doc.data().type + " " + doc.data().x + " " + doc.data().y + " " + doc.data().timestamp);
        });
        console.log("Current data in database: ", dataPoints.join(", ") + "\n");
    });

我现在的问题是,如何删除所有这些文档而不删除集合?感谢您能提供的任何帮助

1 个答案:

答案 0 :(得分:2)

  

现在的问题是,如何删除所有这些文档而不删除集合?

没有一种方法可以删除整个集合,而不删除该特定集合下存在的所有文档。因此,首先删除所有文档,然后集合将被自动删除。如果馆藏很大,建议您以较小的块删除文档。这是在客户端发生的,但是您可以在Cloud Functions for Firebase中编写一个函数来实现服务器端的相同功能。

编辑:

根据有关how to delete collections的使用Javascript的官方文档:

  

不建议从Web客户端删除集合。

因此,如果您只有几个文档,请遍历集合并在每个文档引用上调用GUID,否则我建议您使用Cloud Functions。