ios - iOS Firebase - 如何从不同节点删除具有相同密钥的子节点
问题描述
我有一个名为以下的参考。在该 ref 下,有 2 个不同的 userId 关注同一个用户。如果他们都关注的用户想要删除他们的帐户,我想从关注节点中删除他们。多位置更新似乎不正确来实现这一点。
怎么做到呢?
用户 kk8qFOIw... 是正在删除其帐户的用户。一旦删除,他们的密钥应该从其他用户的节点中删除。
解决方案
这是你可以做到的:
首先获取 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
})
}
推荐阅读
- dependency-injection - Azure Function ServiceBus 触发器依赖注入
- python - 使用 Python 在 SSH 中使用“su -l”执行命令
- opencv - 使用 mingw 构建 opencv 时,ld 找不到所需的库
- twincat - Twincat3 缺少属性
- node.js - 在agendajs中按特定日期和时间安排
- scala - 以编程方式从风暴螺栓中杀死拓扑时编译错误:对象和包同名
- typescript - 如何在 Monorepo 中的 VueJS 项目之间共享组件
- vba - 无法修复无限循环
- javascript - 使用 JavaScript 定义 GraphQL 查询/突变的巧妙方法
- javascript - 将 JavaScript 注入网站