[英]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.