繁体   English   中英

表的 Firebase 查询

[英]Firebase query of table

我有一个名为Users的 Firebase 表,用于存储表单的用户对象

"users": {
   "user1": {
      "name": "username",
      "id": "userID",
    },
}

如何创建正确的查询以获取所有具有“名称”的用户。

我试过了,但这会返回一个空快照:

let ref = self.getDatabaseInstanceWith(child: FirebaseIdentifiers.tableUsers)
   ref.queryOrdered(byChild: "name")
      .queryEqual(toValue: "username")
      .observe(.value, with: { snapshot in
}

用于检索名为 John 的用户的 uid 的 Firebase 查询

let queryRef = usersRef.queryOrdered(byChild: "name").queryEqual(toValue: "John")

//get all of the comments tied to this post
queryRef.observeSingleEvent(of: .value, with: { snapshot in

     for snap in snapshot.children {
          let userSnap = snap as! FIRDataSnapshot
          let userDict = userSnap as! [String:AnyObject]
          let uid = userSnap.key                
          let name = userDict["name"] as! String

          print("key = \(uid)") //prints the johns uids
     }
})

然而....

上面的代码需要稍微不同的 Firebase 结构。

一个典型的 Firebase 设计模式是使用用户的 uid 作为用户节点的键

users
   uid
    name: "some name"
    location: "somewhere"

如果你想使用你的结构,那么 id 将作为子节点而不是 userSnap.key 被检索

   let name = userDict["name"]
   let uid = userDict["id"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM