2016-11-01 2 views
3

Ich benutze Firebase 2.4.2. Ich habe eine Datenbank wie folgt:Firebase Bestellung und Abrufen des Index für einen bestimmten Datensatz

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

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

    "item3": { 
     "details": { 
     "name": "item 3", 
     "rate": "6" 
     } 
    } 
    } 

Ich habe Tausende von Elementen und möchte nicht alle in einer Tabelle laden. Stattdessen möchte ich die top10 zusammen mit dem Element laden, auf das der Benutzer geklickt hat. Also, wenn Sie auf der Seite sind: /items/details/item2, möchte ich, dass Sie die Top10 Elemente in der Datenbank (basierend auf ihren Raten) und die item2 in einer Tabelle sehen. Ich würde auch gerne den Index von item2 in der geordneten Liste zeigen.

ind id  rate 
1 item56 100 
2 item33 98 
... 
143 item2 13 

Was wir tun normalerweise -wenn die Bandbreite ist nicht themen- alle Daten abzurufen ist wie folgt (zB mit AngularFire)

var ref = fbutil.ref('items').orderByChild('details/rate'); 
return $firebaseArray(ref); 

Allerdings würde Ich mag sie bestellen, rufen Sie die top10, und rufen Sie dann den item2 (in diesem Fall) und seinen Index (143) basierend auf seiner Rate ab.

Wie würde ich das tun?

Antwort

0
// 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); 

Kasse den folgenden Link, um zu sehen, welche Methoden firebase.database.Reference Klasse unterstützt.

https://firebase.google.com/docs/reference/js/firebase.database.Reference

+0

Dank Zura, aber meine Frage nicht beantwortet. Das Problem besteht nicht darin, die top10 und einen bestimmten Gegenstand zu bekommen. Das Problem besteht darin, den Index dieses bestimmten Elements in der Datenbank basierend auf seiner 'Rate' (basierend auf derselben Metrik, die zum Sortieren dieser Top10-Elemente verwendet wird) abzurufen, ohne die gesamten Daten aus der Datenbank abzurufen. –

+0

Verstanden. Darf ich wissen, warum Sie diesen Index haben wollen? Was ist Ihr endgültiger Zweck? –

+0

Stellen Sie sich vor, Sie haben Tausende von Artikeln. Ich möchte sie nicht jedes Mal laden, wenn jemand auf einen Gegenstand klickt. Stattdessen möchte ich die Top-Artikel sowie die Rangfolge des aktuellen Artikels basierend auf seiner Rate zeigen. –

Verwandte Themen