我正在为我的应用使用Firebase,并且我正在尝试查询数据库的内容。我使用以下查询:
// ...
// routing code
// ...
let options: Object = {
"name": "World"
};
res.render("index", options);
例如。如果我正在寻找“bose”一词,那么只有bose出现,但是“Bose”,“BOSE”和& “Bose XYZ”不会出现。当我查询“bose”时,我将如何进行查询以便显示以上所有内容
答案 0 :(得分:2)
由于您使用的是queryEqualToValue
,因此您只能获得userComment
与您指定的值完全匹配的结果。
如果您想要userComments
以值开头的结果,则应使用queryStartingAtValue
和queryEndingAtValue
的组合:
DataService.dataService.BASE_REF.child("Posts").
child(selectedComment.commentKey).child("comments").
queryOrderedByChild("userComment")
.queryStartingAtValue(comment). queryEndingAtValue(comment+"\uF8FF")
observeSingleEventOfType(.Value, withBlock: { (snapshot) in
这会为您提供一系列结果,从comment
开始到以comment
开头,后跟最后一个unicode字符的结果。
但是这仍然不会匹配大写和小写结果。如果需要,您必须将数据存储在统一的大小写中以启用搜索。 Firebase数据库更侧重于实时数据同步,而不是其(文本)搜索功能的完整性。
另见: