【发布时间】:2020-08-12 00:25:18
【问题描述】:
我更新了用于结构化的 Firestore 图像:
我用这种方法删除了集合中的文档,但我没有收到错误,产品的ID仍然是正确的。
firebase.service.ts
deleteProdusBayonete(id: string): Promise<void> {
return (
console.log(id),
this.firestore
.collection("bayonete")
.doc<CutiteInterface>(`bayonete/bayonete/${id}`)
.delete()
.catch((error) => {
console.log(error);
})
);
}
删除-product.page.ts
async deleteProdus(fID) {
console.log(fID);
const alert = await this.alertController.create({
message: "Are you sure you want to delete this product?",
buttons: [
{
text: "Cancel",
role: "cancel",
handler: (aha) => {
console.log("Confirm Cancel: blah", aha);
},
},
{
text: "Okay",
handler: () => {
this.FirebaseService.deleteProdusBayonete(fID).then(() => {
console.log(fID + " => Deleted");
});
},
},
],
});
await alert.present();
}
删除-product.page.html
<ion-col class="arranged" size-lg="6" size-md="6" size-sm="6" size-xs="12"
*ngFor="let bayoneta of this.ProduseService.allBayonet | async"
[routerLink]="['/produse','angro', 'bayonete', bayoneta.id]">
...
<ion-button type="submit" (click)="this.deleteProdus(bayoneta.id)">Sterge
Produs</ion-button>
** 更新:
我修改了我的方法,所以我声明了另一个名为 uniqueId 的参数,它是随机生成器。但是..如果我无法访问 this.firestore.createId();函数添加产品时自动生成的documentId,我无法访问此参数。
仍然,我可以获取我的自定义参数,但无法使用我的方法来删除具有以下相同唯一 ID 的文档。 **
async deleted(uniqueID: string): Promise<any> {
return await firebase
.firestore()
.collection("bayonete")
.where("uniqueID", "==", `${uniqueID}`)
.get()
.then((res: any) => {
console.log(uniqueID);
firebase.firestore().collection("bayonete").doc(uniqueID).delete();
console.log(uniqueID);
})
.catch((err: any) => {
console.log(err);
});
}
而我使用的创建产品方法是这样的:
createProdus(
id: any,
title: string,
description: string,
stoc: boolean,
price: number,
reducere: number,
tag: string,
image: string,
userId: string,
uniqueID: string
): Promise<void> {
this.actualID = this.firestore.createId();
this.firestore.collection("bayonete");
return this.firestore.doc(`${id}/${this.actualID}`).set({
id,
title,
description,
stoc,
price,
reducere,
tag,
image,
userId,
uniqueID,
});
}
【问题讨论】:
-
能分享一下constructor()代码吗?也放下这个。用
Sterge Produs -
bayonete/bayonete/${id}正确吗?您能否分享您的 Firestore 结构,以便我们更好地了解您的整体流程? -
我更新了 Firestore 结构。我也改变了
Sterge Produs 但仍然没有任何反应。 -
更新:如果我将文档的唯一 ID 放在 doc('id') 中,我可以删除该文档.. 似乎我无法正确获取文档的 ID.. 如何我应该得到文档的唯一 ID 吗?
标签: angular typescript firebase google-cloud-firestore product