.remove() 不适用于我的特定参考

罗伯托·塞普尔韦达·布拉沃

这是我的数据库:

在此处输入图片说明

我想删除“small_green”值,所以我正在尝试:

const refToDelete = firebase.database().ref().child('products').orderByChild('fruits').equalTo('small_green');
refToDelete.remove();

但它抛出这个错误:

在此处输入图片说明

我正在关注教程和文档。

我做错了什么?

弗兰克·范·普费伦

您只能调用remove()a 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');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章