带有childKey的Firebase queryEqualToValue

Dan*_*evy 5 ios firebase swift firebase-realtime-database

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

queryEqual(toValue: Any?, childKey: String?)
Run Code Online (Sandbox Code Playgroud)

我的数据库结构:

Schools {
    testUID1 {
        schoolNameLC: test school 1
    }
}
Run Code Online (Sandbox Code Playgroud)

我的查询是:

databaseReference.child("Schools").queryEqual(toValue: "test school 1", childKey: "schoolNameLC").observe(.value) { (snap) in
        print(snap)
    }
Run Code Online (Sandbox Code Playgroud)

这个查询打印出来null,我不能让它工作.由于我的应用程序的设置方式,我不知道该键在父键下schoolNameLC有一个值.我想要做的就是在我的数据库中搜索并返回值为的任何内容.testSchool1testUID1SchoolsschoolNameLCtest school 1

Fra*_*len 11

不幸的是,双参数queryEqualToValue:childKey:(及其兄弟queryStartingAtValue:childKey:和者queryEndingAtValue:childKey:)是Firebase数据库API中一些最容易被误解的方法.

要由孩子订购,然后过滤该孩子的价值,您必须致电queryOrderedByChild().queryEqualToValue().所以@ ElCaptainV2.0说:

databaseReference.child("Schools")
    .queryOrderedByChild("scho??olNameLC")
    .queryEqua??lToValue("test school 1")
Run Code Online (Sandbox Code Playgroud)

你只应该使用childKey:的参数,如果你想在具有相同匹配的所有节点的特定键启动test school 1值.当您尝试分页/无限滚动结果时,此重载非常有用.