我有这段代码:
DataService.ds.MSGS_DB_REF_KEY1.queryOrdered(byChild: "livelli").observe(.value, with: { snapshot in
for _ in snapshot.children{
if snapshot.hasChild((self.textField.text?.lowercased())!){
DataService.ds.MSGS_DB_REF_LIVELLO1.queryOrdered(byChild: "livello1").observe(.value, with: { (snapshot1) in
self.lvls = []
if let snapshot1 = snapshot1.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshot1 {
if let postDict = snap.value as? [String: AnyObject] {
let level = Levels(levelId: snap.key, levelData: postDict)
self.lvls.append(level)
}
}
}
self.tableView.reloadData()
})
我想做的是检查我的代码中的子名称是否等于文本字段,是否包含我在文本字段中写入的一个字符串。我有一个结构如下的数据库:
Mydata - >关键字 - > keywordlist1 - >名称:"一级",值:"一级" (和其他字符串)。
在文本字段中,我写的是"我想要一个随机级别"我想让应用程序认识到“#34; level"在孩子的名字"一级"。但是使用我的代码时,只有当字符串与数据中的名称相等时才会被识别。
答案 0 :(得分:3)
无法直接查询孩子名称的一部分。你可以下载所有的孩子,然后在客户端搜索它们,但这很麻烦,不是一个很好的选择。更好的选择是使用Cloud Function从后端搜索数据库。查看this sample和this documentation。