Javascript Firebase对特定记录的索引进行排序和检索

Javascript Firebase对特定记录的索引进行排序和检索,javascript,firebase,firebase-realtime-database,angularfire,nosql,Javascript,Firebase,Firebase Realtime Database,Angularfire,Nosql,我用的是Firebase 2.4.2。我的数据库如下: "items": { "item1": { "details": { "name": "item 1", "rate": 5 }, "item2": { "details": { "name": "item 2", "rate": "4" } } "item3": { "detail

我用的是Firebase 2.4.2。我的数据库如下:

  "items": {
    "item1": {
      "details": {
        "name": "item 1",
        "rate": 5
    },

    "item2": {
      "details": {
        "name": "item 2",
        "rate": "4"
      }
    }

    "item3": {
      "details": {
        "name": "item 3",
        "rate": "6"
      }
    }
  }
我有数千个项目,不想将它们全部加载到表中。相反,我希望加载前10名以及用户单击的项目。因此,如果您在以下页面中:
/items/details/item2
,我希望您能看到数据库中排名前10的项目(基于它们的费率)以及表中的
item2
。我还想显示排序列表中
item2
的索引

ind id     rate
1   item56 100
2   item33 98
...
143 item2  13
如果带宽没有问题,我们通常会按如下方式检索所有数据(例如,使用AngularFire)

但是,我想对它们进行排序,检索前10名,然后检索
item2
(在本例中)及其基于其比率的索引(
143

我该怎么做

// For getting top 10
var ref = fbutil.ref('items').orderByChild('details/rate').limitToFirst(10);
return $firebaseArray(ref); 

// For getting single
var ref = fbutil.ref('items').orderByChild('details/rate').equalTo(13);
var singleItem = $firebaseObject(ref);
签出以下链接以查看类支持的方法


谢谢祖拉,但这并不能回答我的问题。问题不在于获得前10名和某个特定项目。问题是根据其
比率
(基于用于排序前10个项目的相同度量)获取数据库中该特定项目的索引,而不从数据库检索整个数据。明白。我可以知道你为什么想要这个索引吗?你的最终目的是什么?假设你有成千上万的项目。我不想每次有人单击某个项目时都加载它们。相反,我想显示排名靠前的项目加上当前项目基于其比率的排名。
// For getting top 10
var ref = fbutil.ref('items').orderByChild('details/rate').limitToFirst(10);
return $firebaseArray(ref); 

// For getting single
var ref = fbutil.ref('items').orderByChild('details/rate').equalTo(13);
var singleItem = $firebaseObject(ref);