【问题标题】:Querying firebase database nested children查询firebase数据库嵌套的孩子
【发布时间】:2019-03-23 16:13:09
【问题描述】:

我的 firebase 数据库是这样配置的:

{ "Posts": {
    "randomPostKey": {
      usersThatReadThisPost: {
       "randomUser":"000001",
         "anotherRandomUser":"000002"
         }
     },
     "anotherRandomPostKey": {
       usersThatReadThisPost: {
         "randomUser":"randomUserKey",
         "anotherRandomUser":"anotherRandomUserKey"
       }
    }
  }
}

我想要做的是进入每个帖子并有效地检查用户(“我已经有了用户的 ID”)是否阅读了帖子..

我尝试过查询,但它对我来说真的不起作用...... 如果有人可以帮助我,那就太好了。谢谢!

【问题讨论】:

  • 太宽泛了,向我们展示您的尝试并解释为什么它不起作用。

标签: swift firebase firebase-realtime-database swift3 swift4


【解决方案1】:

首先你需要访问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
                                 }
                            }
                       }
                }
          }
     }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    相关资源
    最近更新 更多