【问题标题】:Firebase - Get All Data That ContainsFirebase - 获取包含的所有数据
【发布时间】:2014-04-25 22:37:24
【问题描述】:

我有一个 firebase 模型,其中每个对象看起来像这样:

done: boolean
|
tags: array
|
text: string

每个对象的tag 数组可以包含任意数量的字符串。

如何获取所有带有匹配标签的对象?例如,查找tag 包含“电子邮件”的所有对象。

【问题讨论】:

标签: javascript angularjs firebase angularfire


【解决方案1】:

随着 API 的不断扩展,许多更常见的搜索场景,例如按属性搜索(您的标签数组将包含)将被纳入 Firebase。

与此同时,您当然可以自己种植。根据您的问题,一种方法是简单地用匹配的记录列表“索引”标签列表:

/tags/$tag/record_ids...

然后要搜索包含给定标签的记录,您只需对标签列表进行快速查询:

new Firebase('URL/tags/'+tagName).once('value', function(snap) {
    var listOfRecordIds = snap.val();
});

这是一个非常常见的 NoSQL 口头禅——在初始写入中投入更多精力,以便以后轻松读取。这也是一种常见的denormalization 方法(大多数 SQL 数据库在内部使用,在更复杂的级别上)。

另请参阅 Frank 提到的帖子,因为这将帮助您扩展到更高级的搜索主题。

【讨论】:

  • 这样的东西是否已集成到 Firebase API 中?我似乎在文档中找不到任何内容,这个 S/O 线程是进行此类搜索的热门话题之一。
猜你喜欢
  • 2021-02-17
  • 2021-12-05
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多