我试图建立一个firebase云功能来从Firebase数据库中删除一个节点。日志消息显示执行的功能" ok"但它似乎没有从数据库中删除任何元素。我从How to delete data in 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 :(得分:9)
我认为选择是错误的。仔细检查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)
});