使用firebase云功能从firebase数据库中删除节点

时间:2017-07-20 20:51:44

标签: javascript firebase firebase-realtime-database google-cloud-functions

我试图建立一个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

1 个答案:

答案 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)
  });