0

J'utilise firebase et polymer pour construire une application, et j'ai une donnée que j'ai obtenue en utilisant l'élément firebase-query. Je souhaite réorganiser les données afin qu'elles affichent d'abord les nouvelles données. J'ai donc pensé pouvoir utiliser l'attribut sort sur la balise template pour la trier par ordre décroissant, mais cela ne fonctionne pas comme prévu.Trier par clé desc dans polymerfire avec firebase-query

 <firebase-query 
    id="questionQuery" 
    path="/questions" 
    limit-to-last="15" 
    data="{{questions}}"> 
</firebase-query> 

Et le modèle ressemble à cette méthode:

 <template is="dom-repeat" items="[[questions]]" sort="_computeSort" as="question"><p>[[question.body]]</p></template> 

et dans ma définition de l'élément, je ceci:

_computeSort: function(a, b) { 
    console.log(a.__firebaseKey__); 
    if (a.__firebaseKey__ == b.__firebaseKey__) { 
     return 0; 
    } 
    return a.__firebaseKey__ > b.__firebaseKey__ ? -1 : 1; 
    }, 

Ce ne fonctionne pas. La sortie du journal vers la console est juste un tas d'undefindes, donc le problème devrait être là, mais comment puis-je accéder à la clé de chaque question?

Répondre

0

D'accord, je suis un Anser

$ key est l'expression pour accéder à la clé générée par le firebase, donc il suffit de changer la fonction de tri à ceci:

_computeSort: function(a, b) { 
    if (a.$key == b.$key) { 
     return 0; 
    } 
    return a.$key > b.$key ? -1 : 1; 
    }, 

je l'avais fait juste copié la code d'ici Polymer 1.0: Sorting dom-repeat et voilà comment j'ai fini avec un code comme _firebasekey__.