我在检索节点中存在的数据时遇到问题
Dev-> Regis-> [userId(“ hjgsfgsdfghd8ydfsw3r”)]-> UserInfo-> {userName:“”,电子邮件:“”}
我正在尝试以下查询
ref.child(kChild).child(kRegistration).queryOrdered(byChild: kUserInfo).queryEqual(toValue: searchText).observeSingleEvent(of: .value) { (snapshot) in
if snapshot.exists() {
}
}
我也尝试制定规则,但确实可以产生结果
"Development": {
"Registration": {
"$user_id": {
"UserInfo": {
".indexOn": ["userName"],
".read": "auth.uid == $user_id"
}
}
}
}
数据库结构
和ref表示Database.refrence()
请帮助您解决此问题。
谢谢。
答案 0 :(得分:0)
假设searchText是您要获取对象的用户名值。 Firebase需要一个orderBy调用。
let searchText = //username you wish to fetch
let ref = db.ref('Development/Registration/${userId}/userInfo')
ref.orderByChild('userName').equalTo(searchText).once("value", function(snapshot) {
if(snapshot.exists()){
//whatever you want to do here
}
}