火力地堡queryEqualToValue与childKey
问题描述:
我试图使用来查询我的火力地堡数据库中的数据:火力地堡queryEqualToValue与childKey
queryEqual(toValue: Any?, childKey: String?)
我的数据库结构:
Schools {
testUID1 {
schoolNameLC: test school 1
}
}
我的查询是:
databaseReference.child("Schools").queryEqual(toValue: "test school 1", childKey: "schoolNameLC").observe(.value) { (snap) in
print(snap)
}
这个查询打印出null
,我无法完成它的工作。由于我的应用程序设置的方式,我不知道密钥schoolNameLC
的值为testUID1
的父密钥下的值为testSchool1
。我想要做的就是搜索我的数据库中的Schools
,并返回schoolNameLC
的值test school 1
。
答
双参数queryEqualToValue:childKey:
(及其同类queryStartingAtValue:childKey:
和queryEndingAtValue:childKey:
)不幸是Firebase数据库API中最被误解的一些方法。
要为小孩订购,然后过滤该小孩的价值,您必须致电queryOrderedByChild().queryEqualToValue()
。因此,作为@ ElCaptainV2.0说:
databaseReference.child("Schools")
.queryOrderedByChild("schoolNameLC")
.queryEqualToValue("test school 1")
你只应该使用childKey:
参数,如果你也希望在具有相同匹配test school 1
值的所有节点的特定键启动。当您尝试分页/无限滚动结果时,此重载确实非常有用。
+0
那做的伎俩 - 谢谢! –
尝试'databaseReference.child( “学校”)。queryOrderedByChild( “schoolNameLC”)。queryEqualToValue(试验学校1).observe(.value的){(SNAP)在 打印(snap.value) }' –