gpt4 book ai didi

javascript - Firestore 中的查询删除正在删除所有内容,如何解决?

转载 作者:行者123 更新时间:2023-11-30 19:51:28 26 4
gpt4 key购买 nike

我需要从集合中删除所有文档,但我应该只删除“pedido”等于“this.pProdutos”的地方。问题是,即使在查询之后,它也会删除整个集合中的所有文档。我现在正在使用下面的代码:

    this.db.collection('produtosPedidos', ref => ref.where('pedido', '==', this.pProdutos)).ref
.get()
.then(querySnapshot => {
querySnapshot.forEach((doc) => {
doc.ref.delete().then(() => {
console.log("Document successfully deleted!");
}).catch(function(error) {
console.error("Error removing document: ", error);
});
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});

最佳答案

问题是由您在此处查询末尾的 .ref 引起的:

ref.where('pedido', '==', this.pProdutos)).ref

第一部分 ref.where('pedido', '==', this.pProdutos)) 构造了一个查询,但随后对该查询调用 ref 返回整个集合的 CollectionReference。删除尾随的 .ref 它应该可以工作。

this.db.collection('produtosPedidos', ref => ref.where('pedido', '==', this.pProdutos))
.get()
.then(querySnapshot => {
...

对于这种类型的操作,通过 AngularFire 运行它没有额外的好处。我建议简单地在裸 JavaScript SDK 上运行它,以减少代码。由于 AngularFire 构建在 JavaScript SDK 之上,因此当您执行此操作时,两者可以完美地互操作。

在代码中:

firebase.firestore().collection('produtosPedidos').where('pedido', '==', this.pProdutos)
.get()
.then(querySnapshot => {

关于javascript - Firestore 中的查询删除正在删除所有内容,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54420631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com