我有一个名为“Following”的引用。在该引用下,有 2 个不同的 userId 关注同一用户。如果他们都关注的用户想要删除他们的帐户,我想从关注节点中删除他们。多位置更新似乎无法正确实现此目的。
如何做到这一点?
用户 kk8qFOIw... 是正在删除其帐户的用户。一旦删除,他们的 key 应该从其他用户的节点中删除。
最佳答案
您可以这样做:
首先获取 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
})
}
关于iOS Firebase - 如何从不同节点中删除具有相同 key 的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701778/