【问题标题】: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();
});
});