首页 > 解决方案 > 从firebase中删除文档的有效方法

问题描述

我想从我的 Firestore 收藏中删除一个游戏,但出现错误:

类型错误:文档不是函数

我正在使用最新版本的 Firebase。删除文档的正确方法是什么?

import {where,query,deleteDoc,collection, doc, getDocs, getFirestore } from "firebase/firestore";
    
deleteGame(game)  {            
  const db = getFirestore();
  const q = query(collection(db, "history"), where("date", "==", game.date));
  const doc = getDocs(q);
  const quer = await getDocs(q);

  quer.forEach((doc) => 
   {    
       deleteDoc(doc(db, "history", doc.id));
   });
}

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


根据删除数据的firebase文档,您确实应该使用

deleteDoc(doc(db, "history", doc.id));  

但是 doc 需要是从firebase/firestore. 您正在使用来自 quer ( quer.forEach(( doc ) => )的元素重写 doc 的值。

您还const doc = getDocs(q);需要更改两个doc变量的名称,以便在 forEach 回调中使用导入的函数。

还要记住,这不会是子集合(如果有的话 - 如文档中所指定)。


推荐阅读