ios - Firebase 查询 - 查找包含字符串的子项

标签 ios objective-c iphone database firebase

我在使用 Firebase 查询时遇到了一些麻烦。我想查询对象,其中对象子值包含某个字符串。到目前为止,我有一些看起来像这样的东西:

Firebase *ref = [[Firebase alloc] initWithUrl:@"https://dinosaur-facts.firebaseio.com/dinosaurs"];
[[[[ref queryOrderedByKey] queryStartingAtValue:@"b"] queryEndingAtValue:@"b~"]
    observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
    NSLog(@"%@", snapshot.key);
}];

但这只会给出起始值为“b”的对象。我想要包含字符串“b”的对象。我怎么做?

最佳答案

查询 API 中没有包含或模糊匹配方法,如果您扫描过 the API,您可能已经猜到了。和 the guide on queries .

不仅在 SO [ 1 上讨论了这个主题令人作呕。 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ],但我已经多次谈到为什么要 use a real search engine ,而不是尝试这种三心二意的搜索方法。

谷歌搜索网站通常比使用内置搜索更容易找到结果是有原因的,这是失败的主要组成部分。

综上所述,由于没有内置包含,如何手动执行此操作的问题的答案是设置一个服务器端进程,将数据加载/流式传输到内存并手动搜索内容,最好使用某种缓存。

但老实说,ElasticSearch 在这里更快、更简单、更高效。既然这是一个很大的话题,我会把你推迟到 blog post on this subject .

关于ios - Firebase 查询 - 查找包含字符串的子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226301/

相关文章:

ios - 如何在谷歌地图 iOS swift 中绘制两个位置之间的路线

ios - HLS 流式传输到 IOS 设备

ios - 在哪里设置应用程序的环境变量?

objective-c - 如何获得类似于 Spotlight 或 iTunes 的搜索功能?

ios - 非视网膜 iPad 上的图像看起来模糊

iPhone - 如何处理多个 UIImagePickerControllerDelegate?

ios - "SceneKit: error, missing buffer [-1/2]"试图将制服传递给 Metal 着色器时

ios - MC 系统组容器和 MC 从键盘外观上的公共(public)有效用户设置错误中读取

iphone - 更改 reg-ex 以在 iphone 上进行电子邮件验证

iphone - 在 iOS 中查看 .gfx 文件