对于此Firebase结构:
-users
--AQTbWsojNhbZMYwrteDptzMlpqN2
----KiUtRqCnxDdJS4kFX9h: true
----KofsazjH1OBoM4WVPr3: true
--cErsfz5X51Q7KwqtCbBZtwuCvEo2
----KofsazjH1OBoM4WVPr3: true
我需要删除所有键(例如-KofsazjH1OBoM4WVPr3),这些键对应于我在所有用户节点中的精确值(detailId)(如果存在)
到目前为止我做了什么:
ref.child("users").observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.exists(){
if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshots {
if snap.hasChild(detailId){
snapshot.ref.child(snap.key).child(detailId).removeValue()
}
}
}
}
})
现在在控制台中我看到它只删除了第一次出现的detailId,所以例如在下面的快照中 - 仅为用户cErsfz5X51Q7KwqtCbBZtwuCvEo2删除了KofsazjH1OBoM4WVPr3
snapshot: Snap (user) {
AQTbWsojNhbZMYwrteDptzMlpqN2 = {
"-Kolc0zIZi2Cd7ongShd" = 1;
};
cErsfz5X51Q7KwqtCbBZtwuCvEo2 = {
"-KiUtRqCnxDdJS4kFX9h" = 1;
"-KofsazjH1OBoM4WVPr3" = 1;
};
yUyw4kMGdpSwSn4pGBzhg5w7e9d2 = {
"-KocOfR1aHofFYu1HNna" = 1;
"-KofsazjH1OBoM4WVPr3" = 1;
};
}

有人可以解释我的错误吗?