[英]How to delete a node in firebase realtime database in javascript
我很難刪除 firebase 實時數據庫中的一個節點。
這是我在 firebase 中的刪除節點和如何刪除/刪除 Firebase 中的節點之后嘗試的:
1)
let chatRef = db.ref("/chats");
var query = chatRef.orderByChild("uid").equalTo(chatId);
query.on("child_added", (snapshot) => {
snapshot.ref.remove();
});
使用上面的代碼,當我點擊刪除整個數據(所有節點,包括聊天)被刪除。
2)
chatRef.limitToLast(1).once("value", (snapshot) => {
snapshot.forEach((deedSnapshot) => {
deedSnapshot.ref.remove();
});
});
我按預期進行了此操作,但它僅刪除了 /chats 中的最后一個節點,並且我想指定要刪除的chat/uid
。
3)
let chatRef = db.ref("/chats");
chatRef.child("5ZuZvUyByDcbteclgpM0t08beVn1").remove();
這根本沒有導致任何事情發生。 我在 try/catch 中有這個,點擊“刪除”導致嘗試運行,但沒有發現錯誤。 數據庫中什么也沒有發生。
4)
let chatRef = db.ref("/chats/MJy8cxO85ldEnDScsWZ");
chatRef.remove();
結果與上面的第 3 點相同——什么也沒發生,在 try/catch 中也沒有發現錯誤。
更新:我嘗試了以下操作,但這會刪除整個chats
數據,而不僅僅是我要刪除的節點:
let chatRef = db.ref("/chats");
chatRef
.orderByChild("uid")
.equalTo(chatId)
.once("value")
.then(function (snapshot) {
snapshot.forEach((childSnapshot) => {
//remove each child
chatRef.child(childSnapshot.key).remove();
});
});
你的第四個例子應該可以工作,除非你有錯字:
let chatRef = db.ref("/chats/MJy8cxO85ldEnDScsWZ");
它應該是:
let chatRef = db.ref("/chats/-MJy8cxO85ldEnDScsWZ");
你錯過了“M”之前的“-”。
我參加聚會有點晚了。 只是想建議另一種方式。
要刪除節點,我們可以將 null 作為set
的值傳遞
import { database } from 'firebase-admin';
const db = database();
const ref = db.ref('server/saving-data/fireblog');
dataRef.set(null, (error) => {
if (error) {
console.log('Data could not be removed.' + error);
} else {
console.log('Data removed successfully.');
}
});
刪除實時數據庫中的節點首先從數據庫中導入刪除
import { remove } from "firebase/database";
在您設置的刪除方法中:
remove(ref(getDatabase(), `users/${userId}/node/${node.id}`))
謝謝 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.