iOS Firebase-如何从不同节点删除具有相同密钥的子级

时间:2018-08-06 06:33:57

标签: ios swift firebase firebase-realtime-database

我有一个名为following的裁判。在该引用下,有2个不同的userId跟随同一用户。如果他们都是关注的用户,则想删除其帐户,我想从关注节点中删除它们。多位置更新似乎无法实现这一目标。

怎么办?

enter image description here

用户kk8qFOIw ...是要删除其帐户的用户。删除后,应从其他用户的节点中删除其密钥。

1 个答案:

答案 0 :(得分:0)

这是您可以做到的方式:

首先获取id = 1的所有节点,然后运行多路径更新并将其设置为空。

 let userId = "yourUserId"
    self.ref.child("following").queryOrdered(byChild: userId).queryEqual(toValue: 1).observeSingleEvent(of: .value) { (snasphot) in
        guard let value = snasphot.value as? [String : Any] else {return}


        var multipathUpdate = [String:Any]()
        value.keys.forEach({ (key) in
            multipathUpdate["following/"+key+"/"+userId] = [:]
        })
        self.ref.updateChildValues(multipathUpdate, withCompletionBlock: { (err, ref) in

        })
    }