带有childKey的Firebase queryEqualToValue

我正在尝试使用以下方式在我的Firebase数据库中查询数据:

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 testSchool1的父项下有一个值testUID1 。 我想要做的就是通过我的数据库中的Schools进行search,并返回任何带有schoolNameLC值的test school 1

不幸的是,Firebase数据库API中的两个参数queryEqualToValue:childKey:及其queryStartingAtValue:childKey:queryEndingAtValue:childKey:是最被误解的一些方法。

要按小孩sorting,然后过滤该小孩的值,必须调用queryOrderedByChild().queryEqualToValue() 。 正如@ ElCaptainV2.0所说:

 databaseReference.child("Schools") .queryOrderedByChild("scho‌​olNameLC") .queryEqua‌​lToValue("test school 1") 

如果您还想从具有相同匹配test school 1值的所有节点中的特定键开始,则只应使用childKey:参数。 当你尝试分页/无限滚动结果时,这个重载真的非常有用。