2017-08-26 28 views
0

我有一个我参与的遗留Firebase项目。在这里面我有资源songs以下规则:Firebase indexOn适用于某些不符合规则的内容JSON

"songs": { 
     ".indexOn": ["artist_timestamp"] 
}, 

,让我做的事情一样curl htttp://my-fire-base-ref/songs.json?orderBy="artist_timestamp"

不过,我也可以做orderBy="$priority"这是我们添加到所有song对象的属性。尽管json定义中没有明确指出它,但它仍然有效。这是一个秘密允许的财产吗?

回答

1

每个节点的.priority都是隐式索引的,因此您无需为其定义索引。

为什么你使用优先顺序?虽然它们仍然可以工作,但使用命名属性可以让您使用更易读的代码来完成相同的操作见What does priority mean in Firebase?

1

按照documentation for indexing data

火力地堡提供订购和查询数据的强大工具。 具体而言,Firebase允许您使用任何常用子密钥对使用节点的集合 进行即席查询。随着您的应用程序的增长,此查询的性能下降。但是,如果您告知Firebase 有关您要查询的密钥,Firebase会将这些密钥索引在 服务器上,从而提高查询性能。

这意味着你可以在任何时间任何键,但不将其指定为索引顺序,但不一键指定一个特定的指数,表现可能是大型数据集的非常糟糕。

相关问题