Firebase Database Rest API未知节点下如何按Views字段服务端降序排序
实现方案
完全可以实现,按以下步骤操作即可:
1. 先配置数据库索引
首先需要在Firebase控制台的Realtime Database规则中为Views字段添加索引,避免查询触发性能警告,规则配置参考如下(权限部分按你实际业务要求调整):
{ "rules": { "Main": { "News": { "Categories": { "Education": { ".indexOn": "Views", ".read": true, ".write": false } } } } } }
2. 构造REST API查询参数
Firebase Realtime Database REST API默认按升序返回排序结果,你可以配合参数实现降序需求:
全量数据排序
直接请求Education节点并指定按Views排序:
https://<你的项目ID>.firebaseio.com/Main/News/Categories/Education.json?orderBy=%22Views%22
返回结果会按Views从小到大升序返回,你拿到数据后将帖子列表倒转,或者手动按Views从大到小排序即可。
按需取Top N高浏览量内容
如果只需要取浏览量最高的前N条(比如前15条热点新闻),可以加limitToLast参数,服务端直接返回最高的N条数据:
https://<你的项目ID>.firebaseio.com/Main/News/Categories/Education.json?orderBy=%22Views%22&limitToLast=15
拿到返回结果后倒转顺序,就是按浏览量从高到低排列的列表。
注意事项
- 参数里的
"Views"需要做URL转义,转义后为%22Views%22,否则请求会报错 - 如果数据量超过1万条,不建议拉取全量数据排序,使用
limitToLast+startAt参数分页加载即可
内容的提问来源于stack exchange,提问作者OLIVER
相关产品推荐
相关产品推荐

