如何使用key删除firebase实时数据库子节点?

Unr*_*Key 5 javascript web firebase vue.js firebase-realtime-database

当我尝试运行下面的代码时,出现错误,但我不知道为什么。

confirmDelete(e) {
  const db = getDatabase();
  db.ref("/ships/" + e.target.id).remove();
},
Run Code Online (Sandbox Code Playgroud)

如果我记录,我会得到与下面代码中的ShipKeye.target.id完全相同的信息。

以下是该数据库的示例:

{
  "ships": {
    "-N43Q4E2ruMpyfaIHGDK": {
      "date": "2022-08-06T18:00",
      "name": "ORANGE OCEAN",
      "shipKey": "-N43Q4E2ruMpyfaIHGDK"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Dha*_*raj 4

看来您正在使用 Firebase Modular SDK (V9.0.0+),其中 和ref()都是remove()顶级函数。尝试重构代码,如下所示:

// import the functions
import { getDatabase, ref, remove } from "firebase/database";

confirmDelete(e) {
  const db = getDatabase();
 
  // create DatabaseReference
  const dbRef = ref(db, "/ships/" + e.target.id);

  remove(dbRef).then(() => console.log("Deleted"))
},
Run Code Online (Sandbox Code Playgroud)

查看文档以了解有关新语法的更多信息。