在防火分区中按比例指定索引
Specifying index at scale in firebase
目前我正在尝试orderByChild
,请参阅下面的一些示例数据。
{
"teams": {
"blue":{
"tomsmith":{
"firstName":"Tom",
"lastName":"Smith",
"sortTotal":-433,
"total":433
},
"bobsmith":{
"firstName":"Bom",
"lastName":"Smith",
"sortTotal":-133,
"total":133
}
},
"red":{
"tomkelly":{
"firstName":"Tom",
"lastName":"Kelly",
"sortTotal":-1433,
"total":1433
},
"davekelly":{
"firstName":"Dave",
"lastName":"Kelly",
"sortTotal":-99,
"total":99
}
}
}
}
当我查看控制台时,我会收到以下消息。
FIREBASE WARNING: Using an unspecified index. Consider adding ".indexOn": "sortTotal" at /teams/blue to your security rules for better performance.
我可以通过将以下内容添加到我的安全规则文件中来解决此问题。
"teams": {
"blue": {".indexOn": "sortTotal"},
"red": {".indexOn": "sortTotal"}
}
但是,如果我有很多团队,或者我的应用程序允许用户添加自己的团队,该怎么办?我该如何处理?
你能全局设置索引吗?例如,对于这个数据库,我希望在所有具有sortTotal
字段的节点上设置一个索引。或者你可以在家长级别上做吗?例如
"teams": {".indexOn": "sortTotal"}
是否也适用于所有团队节点而不单独指定?(我试过了,但似乎不起作用)
排序和索引只适用于下一级通配符。由于在/teams
上为sortTotal
定义了索引,因此它将仅为/teams/red
和/teams/blue
的sortTotal
值编制索引。
与NoSQL数据库一样,这意味着您需要更改(或扩充)数据结构以适应应用程序的需要。目前还不清楚您当前的用例是什么,但我可以看到这些:
- 哪个球队的球员
sortTotal
最高 - 所有球队中哪个球员的
sortTotal
最高 red
队中哪个球员的sortTotal
最高
哪个球队的球员sortTotal
最高
对于案例1,您可以为每个团队添加一个highSortTotalValue
和highestSortTotalPlayer
。
"teams": {
"blue":{
"highSortTotalValue":-433,
"highestSortTotalPlayer": "tomsmith"
},
"red":{
"highSortTotalValue":-1433,
"highestSortTotalPlayer": "tomkelly"
}
}
您可以在/teams
上对此进行索引,然后查询ref.child('teams').orderByChild('highSortTotalValue').on(...
。
所有球队中哪个球员的sortTotal
最高
如果你想知道所有球队球员的排序总数,你需要为每个球员保留一个值列表:
"playerSortTotals": {
"tomsmith": -433,
"tomkelly": -1433,
"bomsmith": -133,
"davekelly": -99
}
现在,您可以向/playerSortTotals
添加索引,并使用ref.child('playerSortTotals').orderByValue()...
找到最高排序总数
red
队中哪个球员的sortTotal
最高
这在您当前的数据结构中是可能的。首先,你需要为每个团队添加一个索引:
"teams": {
"$teamid": {
"$playerid": {
".indexOn": "sortTotal"
}
}
}
该索引为每支球队填充,并包含该球队每名球员的sortTotal
。
有了这个索引,就可以使用ref.child('teams/red').orderByChild('sortTotals')
进行查询。
- CSS3动画图像质量按比例
- JavaScript窗口按比例调整大小
- 使用“缩放”按比例调整全屏图像的大小;超大的“;jQuery插件
- 如何根据浏览器按比例调整文本大小
- 当只给定宽度或高度时,是否所有浏览器都按比例缩放图像
- 在防火分区中按比例指定索引
- 按比例调整图像大小的算法,使其尽可能接近给定尺寸
- 这两个变量都按比例减少
- 我如何才能阻止这张图片按比例拉伸
- 如何使用科学记数法使(笛卡尔)图表轴按比例缩放
- 按比例增加列宽
- 什么'这是在不创建空白的情况下按比例调整图像大小的最佳方法
- 如何调整dojo向量的大小(不完全是按比例缩放)
- 按比例增加整个网站的每个字体大小
- 当您将窗口调整为任何大小时,如何按比例获得此缩放框的图像和文本
- 我如何按比例缩小<img>元素的WxH中较短的一个被设置为固定数
- 媒体查询打印在CSS打印按比例缩小版本在Chrome 54+
- 如何在CSS3或javascript中按比例更改窗口大小的字体大小
- 按比例调整图像大小以适合HTML5画布
- 如何按比例设置这个jQuery动画的持续时间?