【问题标题】:delete collection firebase in v9在 v9 中删除集合 firebase
【发布时间】:2021-11-08 09:48:47
【问题描述】:

有人可以解释我如何使用 v9 使用 reactjs 删除 firebase/firestore 中的集合

firestore()
  .collection('rate')
   .get()
  .then((querySnapshot) => {
  querySnapshot.forEach((doc) => {
    doc.ref.delete();
  });

我在 v8 中使用的这段代码在 v9 中需要同样的东西

 const q = query(collection(db, `${udata.id}`));
    const querySnapshot = await getDocs(q);
    querySnapshot.forEach((doc) => {
      // doc.data() is never undefined for query doc snapshots
      console.log(doc.data());
      
    });

已经尝试过了,但是这段代码只能读取数据,我不能删除,所以有人可以告诉我怎么做

【问题讨论】:

    标签: javascript reactjs firebase google-cloud-firestore


    【解决方案1】:

    您可以使用deleteDoc(),如文档中的here

    deleteDoc() 接受文档引用,因此您需要从 forEach 内部传递引用。在 forEach 中,您收到一个 QueryDocumentSnapshot,因此您只需添加一个

    deleteDoc(doc.ref);
    

    【讨论】:

      【解决方案2】:

      有一个顶级函数deleteDoc()可以在使用Modular SDK时删除文档:

      import { collection, query, getDocs, deleteDoc } from 'firebase/firestore';
      
      const q = query(collection(db, `${udata.id}`));
      const querySnapshot = await getDocs(q);
          
      const deleteOps = [];
      
      querySnapshot.forEach((doc) => {
        deleteOps.push(deleteDoc(doc.ref));      
      });
      
      Promise.all(deleteOps).then(() => console.log('documents deleted'))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-04
        • 1970-01-01
        • 2022-08-17
        • 1970-01-01
        • 1970-01-01
        • 2021-07-07
        相关资源
        最近更新 更多