swift Firebase删除具有给定值的所有快照子项

时间:2017-07-07 12:35:46

标签: ios swift firebase firebase-realtime-database

对于此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;
      
    };
}




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

0 个答案:

没有答案