0

我正在嘗試使Firebase雲功能從Firebase數據庫中刪除節點。日誌消息顯示該函數執行「ok」,但它似乎沒有從數據庫中刪除任何元素。我寫的功能,以幫助從接受的答案在How to delete data in Firebase? 下面是代碼的片段使用Firebase雲功能從Firebase數據庫中刪除節點

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

//path is defined as the value to be deleted, 
console.log("Deleting element " + path); 
var ref = admin.database().ref("/") 
ref.orderByValue().equalTo(path).on('child_added', function(snapshot) { 
    console.log("Snapshot.ref = " + snapshot.ref); 
    snapshot.ref.remove(); 
    return; 
}); 

此外,在上面的代碼中,「刪除元素path_value」通訊記錄,但Snapshot.ref =在顯示......沒有出現。

我沒有足夠的學分插入圖片尚未所以這裏是我的數據庫 Structure of Firebase Database

+0

我認爲選擇是錯誤的。 – arodjabel

+0

你是如何觸發該功能的? Firebase雲端函數一旦被事件觸發,就會運行。你用什麼來觸發這個事件?一個HTTP觸發器?數據庫寫入事件? –

回答

3

一個鏈接,我認爲選擇是錯誤的。仔細檢查一下ref.orderByValue()。equalTo(path)實際上等於什麼。

ref.once('value') 
    .then(function(dataSnapshot) { 
    // handle read data. 
    }); 

https://firebase.google.com/docs/reference/admin/node/admin.database.Reference

var adaRef = admin.database().ref('users/ada'); 
adaRef.remove() 
    .then(function() { 
    console.log("Remove succeeded.") 
    }) 
    .catch(function(error) { 
    console.log("Remove failed: " + error.message) 
    }); 
+0

雖然不像預期的那樣有效,它刪除了我的數據庫的所有內容。日誌顯示「Snapshot.ref = https://application.firebaseio.com/」。你能幫我導航到正確的參考位置嗎? –

+0

在Firebase中,您可以導航到節點,然後複製該URL。這應該可以幫助你找到你想要的確切位置。在你的例子中,var ref = admin.database()。ref(「/」),「/」應該是你想要刪除的節點的路徑。 – arodjabel

+0

謝謝。這應該有助於我找到自己的路。我已經接受你的答案 –

相關問題