这是我的数据库:
我想删除“small_green”值,所以我正在尝试这个:
const refToDelete = firebase.database().ref().child('products').orderByChild('fruits').equalTo('small_green');
refToDelete.remove();
但它引发了这个错误:
我做错了什么?
答案 0 :(得分:0)
您只能在remove()
上致电DatabaseReference
,这是对数据库中确切位置的引用。
您的firebase.database().ref().child('products').orderByChild('fruits').equalTo('small_green')
是一个查询,它不是一个确切的位置。这意味着您无法在其上调用remove()
。您首先必须执行查询以获取匹配的位置,然后在每个位置调用remove()
。
通常情况下,这将是:
const query = firebase.database().ref().child('products').orderByChild('fruits').equalTo('small_green');
query.once('value', functions(snapshot) {
snapshot.forEach(function(childSnapshot) {
childSnapshot.ref.remove();
});
})
除了您在错误的子节点上订购(正如您在评论中所说)。所以你需要:
const query = firebase.database().ref().child('products/fruits').orderByChild('attrs').equalTo('small_green');