我有一个名为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");
});
我现在的问题是,如何删除所有这些文档而不删除集合?感谢您能提供的任何帮助
答案 0 :(得分:2)
现在的问题是,如何删除所有这些文档而不删除集合?
没有一种方法可以删除整个集合,而不删除该特定集合下存在的所有文档。因此,首先删除所有文档,然后集合将被自动删除。如果馆藏很大,建议您以较小的块删除文档。这是在客户端发生的,但是您可以在Cloud Functions for Firebase中编写一个函数来实现服务器端的相同功能。
编辑:
根据有关how to delete collections的使用Javascript的官方文档:
不建议从Web客户端删除集合。
因此,如果您只有几个文档,请遍历集合并在每个文档引用上调用GUID
,否则我建议您使用Cloud Functions。