我正在尝试使用firebase过滤器查询数据,然后我想只删除该查询的结果,但我不知道为什么要从该ref中删除所有元素。
var ref = firebase.database().ref('users');
ref.orderByChild('timestamp').limitToFirst(3).once('value', (snapshot) => {
snapshot.ref.remove()
});
此查询正在删除所有用户,而不仅仅是前3个。
请帮忙吗?
答案 0 :(得分:3)
快照的ref
属性指向'users'
- 查询前3个元素的位置。在该引用上调用remove
将删除所有元素,因为查询对remove
调用没有影响。
您需要迭代快照中的元素并在每个元素的ref上调用remove
:
var ref = firebase.database().ref('users');
ref.orderByChild('timestamp')
.limitToFirst(3)
.once('value', snapshot => snapshot.forEach(child => child.ref.remove()));