【问题标题】:Firebase remove node based on child valueFirebase 根据子值删除节点
【发布时间】:2017-03-19 09:44:55
【问题描述】:

我想通过像 delete * WHERE user_id = "-KTruPWrYO9WFj-TF8Ft" 这样的查询来删除整个节点,如何在 firebase 上实现这一点?

-KVpQFXnzQkzzrowHxGk
  answer: "1"
  question_number: 2
  user_id: "-KTruPWrYO9WFj-TF8Ft"
-KVpQFXODhsAMJYFNjy7
  answer: "4"
  question_number: 25
  user_id: "-KTruPWrYO9WFj-TF8Ft"

【问题讨论】:

    标签: javascript json firebase firebase-realtime-database


    【解决方案1】:

    要首先删除所有具有特定值的子项的引用,您需要使用 equalTo 查询检索所有键(在您的情况下为“-KVpQFXnzQkzzrowHxGk”、“-KVpQFXnzQkzzrowHxGk”),然后使用 remove 函数删除这些引用.

    这里有一个示例代码。

    var ref = firebase.database(); //root reference to your data
    ref.orderByChild('user_id').equalTo('-KTruPWrYO9WFj-TF8Ft')
        .once('value').then(function(snapshot) {
            snapshot.forEach(function(childSnapshot) {
            //remove each child
            ref.child(childSnapshot.key).remove();
        });
    });
    

    【讨论】: