仅从集合中检索特定键

时间:2014-11-01 02:02:05

标签: firebase

我想存储一系列音符,每个音符包含一个标题和一个正文。是否可以在没有正文的情况下检索笔记标题列表?

例如:

notes: [
  ewi4ef36wi: {
    title: 'Shopping List',
    body: 'todo'
  }
  o9kng23inw: {
    title: 'Things To Do',
    body: ''
  }
]

我怎样才能检索标题列表?

2 个答案:

答案 0 :(得分:3)

不。 Firebase的Web / JavaScript API始终返回您请求的节点下的完整树。

最常见的解决方法是人们在树中设置辅助分支,只保留密钥。

Notes
    1: { "body": "hello", "title": "yessir" }
    2: { "body": "again", "title": "title2" }
    3: { "body": "there", "title": "another" }
Notes_index
    1: true
    2: true
    3: true

这通常被称为索引。您on('child_added' Notes_index然后(如果需要)使用once('value'获取每个笔记的内容。

索引通常也用于通过备用密钥访问节点。如上面的标题索引:

Title_index
    "another": 3
    "title2": 2
    "yessir": 1

由于Firebase正在扩展其查询API以允许对任何字段进行排序/过滤,因此可能很快就不再需要此最后一个结构。但对于您的用例,索引仍然有用。

答案 1 :(得分:0)

当然,当您为音符设置标题或正文值时,请务必set a priority。然后,您可以bind to the notes endpoint (receive events and data) limited to keys matching a specified priority