Firebase并在Swift中查询一个术语

时间:2016-11-29 22:34:54

标签: swift search firebase firebase-realtime-database

我正在为我的应用使用Firebase,并且我正在尝试查询数据库的内容。我使用以下查询:

// ...
// routing code
// ...
let options: Object = {
    "name": "World"
};

res.render("index", options);

例如。如果我正在寻找“bose”一词,那么只有bose出现,但是“Bose”,“BOSE”和& “Bose XYZ”不会出现。当我查询“bose”时,我将如何进行查询以便显示以上所有内容

1 个答案:

答案 0 :(得分:2)

由于您使用的是queryEqualToValue,因此您只能获得userComment与您指定的值完全匹配的结果。

如果您想要userComments以值开头的结果,则应使用queryStartingAtValuequeryEndingAtValue的组合:

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数据库更侧重于实时数据同步,而不是其(文本)搜索功能的完整性。

另见: