我正在努力弄清楚如何在特定目录中的任何给定节点下删除/查找某个键/ id。
以下是我的数据库的外观:
userID
和postID
是通过使用.childByAutoId()
生成的。因此,您可以推断,搜索特定字符串.e.g。用户名是不可能的。但是,在调用函数时,我确实通过参数传递了postID
。我尝试了几种方法,但没有运气。实质上这就是我想做的(伪代码):
我确实引用了我的Feed目录 - API.Feed.REF_FEED
。我尝试使用.parent
,.queryOrdered
,.queryEqualTo
等。
答案 0 :(得分:0)
这将有效:
let query = feedRef.queryOrdered(byChild: "-L....VJ").equalTo(true)
query.observe(.childAdded, with: { (snapshot) -> Void in
snapshot.ref.removeValue()
})
这种方法的问题虽然它要求你在-L....VJ
上有一个索引,因此你可能想要删除每个帖子ID。这很快变得难以管理。
出于这个原因,请考虑向您的数据库添加反向查找地图:将每个帖子ID映射到其Feed中包含该帖子的用户:
userposts
$postid
userid1: true
userid2: true
现在,您可以快速找到具有特定帖子的所有用户,然后从这些用户的Feed中删除帖子。