首页 > 解决方案 > 无法删除 Firebase 数据库的节点

问题描述

我调用函数删除如下:

<div *ngFor="let out of cart_checkouts">
<button type="button" (click)="RemoveCheckoutRecord(out.checkoutID)">Delete</button>
</div>

这将执行以下功能:

RemoveCheckoutRecord(rowID) {
this.firestore.doc('cart_checkouts/' + rowID).delete();
}

我也试过:

RemoveCheckoutRecord(rowID) {
var db = firebase.database();
var ref = db.ref("cart_checkouts");
ref.child(rowID).remove();
}

这两个函数都没有抛出错误;他们根本行不通。前面两个函数似乎只是用于集合,这是实时数据库上的一个节点而不是集合。

以下工作删除节点 -MRGk9sayjVDB8F15TM3 但我需要通过 checkoutID 删除它,因为我无法通过它们的键引用节点。

var db = firebase.database();
var ref = db.ref("cart_checkouts/-MRGk9sayjVDB8F15TM3");
ref.remove();

数据库结构如下所示:

cart_checkouts 
   - MRGk9sSNzdImNPmfFJo 
      -- checkoutID: 1 
      -- checkoutProductName: "Adult Female Bike" 
   - MRLp4ettEMfSZjnBSGF 
      -- checkoutID: 3 
      -- checkoutProductName: "Adult Unisex Helmet"

标签: angularfirebase-realtime-database

解决方案


您说删除正在对 db ref 起作用;尝试下面的代码以根据 rowID 获取此引用

RemoveCheckoutRecord(rowID) {
    var db = firebase.database();
    var ref = db.ref("cart_checkouts/" + rowID).remove();
}

推荐阅读