如何从Firestore删除数据?

时间:2018-09-01 09:35:04

标签: javascript firebase google-cloud-firestore

我有一个名为postsCollection的收藏夹,里面有一些文档,我希望每个文档都将其删除。

收藏:

enter image description here

代码:

delete () {
  fb.postsCollection.doc().delete().then(function() {
      console.log("Document successfully deleted!");
  }).catch(function(error) {
      console.error("Error removing document: ", error);
  });
}

我不知道如何定义doc() ...

3 个答案:

答案 0 :(得分:1)

为了从集合中删除任何文档,您必须传递该文档的uid。 然后调用delete()方法。

var postsRef = db.collection('posts');
var query = postsRef.where('content', '==', 'color..').get()
    .then(snapshot => {
      snapshot.forEach(doc => {
        console.log(doc.id, '=>', doc.data());
        var deleteDoc = db.collection('posts').doc(doc.id).delete();
      });
    })
    .catch(err => {
      console.log('Error getting documents', err);
    });

您可以检查在哪里条件唯一字段。否则,它将删除所有具有“内容” equaTo“颜色..”的文档。同样,您可以使用其他各种子句,例如>,<,> =等。

答案 1 :(得分:1)

要删除文档,您需要知道其ID。这意味着,如果您不知道集合中的ID,则必须先从集合中读取文档才能删除它们。

在看起来像这样的代码中

fb.postsCollection.get().then(function(querySnapshot) {
  querySnapshot.forEach(function(doc) {
    doc.ref.delete().then(function() {
      console.log("Document successfully deleted!");
    }).catch(function(error) {
      console.error("Error removing document: ", error);
    });
  })
})

答案 2 :(得分:0)

只有拥有文档参考后,您才能删除该文档。要获取该信息,您必须首先执行查询,然后遍历查询快照,最后根据其引用删除每个文档快照。

var doucumentid = db.collection('posts').where('id','==',post.id);
doucumentid_query.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
doc.ref.delete();
});
});