javascript - 从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));
});
}
解决方案
根据删除数据的firebase文档,您确实应该使用
deleteDoc(doc(db, "history", doc.id));
但是 doc 需要是从firebase/firestore
. 您正在使用来自 quer ( quer.forEach(( doc ) => )的元素重写 doc 的值。
您还const doc = getDocs(q);
需要更改两个doc
变量的名称,以便在 forEach 回调中使用导入的函数。
还要记住,这不会是子集合(如果有的话 - 如文档中所指定)。
推荐阅读
- android - Flutter Jitsi 在释放模式下停止
- reactjs - 基于右键单击在 React 中条件加载组件
- reactjs - 如何有条件地更改 React Native 中平面列表上的数据?
- next.js - 重定向来自 NextJS 子域的所有流量
- javascript - how to create loading spinner react
- bluetooth-lowenergy - NRF52840 上的 HCI_UART,将设备连接到基于 Yocto 的 Linux SBC 错误提示“无法初始化设备 hci0:无法分配请求的地址 (99)”
- python - 是否可以将 sklearn.preprocessing.LabelEncoder() 应用于 2D 列表?
- cqrs - Axon:从订阅模式切换到跟踪模式时不会调用@StartSaga
- php - Laravel 集合:为什么每个都没有应用?
- android - 具有permissionLevel签名的Android Broadcast Reciever未接收广播