我的firebase数据库配置如下:
{ "Posts": {
"randomPostKey": {
usersThatReadThisPost: {
"randomUser":"000001",
"anotherRandomUser":"000002"
}
},
"anotherRandomPostKey": {
usersThatReadThisPost: {
"randomUser":"randomUserKey",
"anotherRandomUser":"anotherRandomUserKey"
}
}
}
}
我想做的是进入每个帖子,并有效地检查用户(“我已经有用户的ID”)是否已阅读该帖子。
我已经尝试过查询,但是对我来说确实不起作用... 如果有人可以帮助我,那就太好了。谢谢!
答案 0 :(得分:0)
首先,您需要访问Posts
private let postsRef = FIRDatabase.database().reference(withPath: "Posts")
然后您获得所有帖子并在帖子中找到用户
postsRef.observeSingleEvent(of: .value, with: { (snapshot) in
for child in snapshot.children {
if let postSnapshot = child as? FIRDataSnapshot {
if let post = postSnapshot.value as? [String: Any], let usersThatReadPost = post["usersThatReadThisPost"] as? [[String: Any]] {
for user in userThatReadPost {
let values = user.values
for value in values {
if let userId = value as? String, userId == userIdThatYouOwn {
// user has read this
break
}
}
}
}
}
}
})