2016-12-13 3 views
0

Ich bin neu in eckig und erstelle derzeit ein Projekt mit Angular2 und Firebase.Sortiere AngularFire2-Objekte in der Reihenfolge des Erstellungsdatums

Ich möchte meine Datenbank in Datum erstellt Reihenfolge sortieren können. Ich bin mir jedoch nicht sicher, wie ich das erreichen könnte. Ich habe Artikel gesucht und deren Implementierungen gesehen. Aber ich weiß nicht, wie ich das zu meinem Projekt umsetzen soll.

Hier ist mein Code, der sich mit Abfragen beschäftigt. Meine Firebase-Datenbank hat nur Titel, Inhalt und Datum (ich gebe das Datum manuell ein).

posts: FirebaseListObservable<any>; 
constructor(public navCtrl: NavController, public alertCtrl:AlertController, angFire: AngularFire) { 
this.posts= angFire.database.list('/Post',{ 
    query:{ 
    orderByChild: "date" 
    } 
}); 

Jede Hilfe wäre toll, danke.

JSON hier

{`"Post" : { 
    "-KYsuclduIKOVi6VXGmn" : { 
    "content" : "text goes here", 
    "date" : "12/12/16", 
    "title" : "Title" 
} 

} }

+0

Was ist das Problem mit dem aktuellen Code? Funktioniert es nicht? Gibt es etwas zurück? Sind die Artikel unsortiert? Es würde wahrscheinlich auch helfen, wenn Sie ein minimales Snippet des JSON teilen, das Sie zu zeigen versuchen (als Text, bitte kein Screenshot). Sie können dies leicht erreichen, indem Sie in der Firebase-Datenbankkonsole auf den Link JSON exportieren klicken. –

+0

Sorry, ich möchte in der Lage sein, einen Beitrag zu machen und firebase automatisch das Datum hinzufügen und ordnen Sie es in der Reihenfolge der letzten Datum zuerst. (hinzugefügt die JSON) – SGhaleb

+0

Firebase hat keine Option, das Datum bei der Erstellung automatisch hinzuzufügen, Sie müssen dies selbst tun, aber wie Sie bereits 'content' und' title' zu ​​Ihrem Beitrag hinzufügen können Sie einfach ein Datum hinzufügen? Hier finden Sie weitere Informationen zum Sortieren: https://firebase.google.com/docs/database/web/lists-of-data#sort_data In Ihrem Fall können Sie 'orderByChild' verwenden. Es gibt keine Möglichkeit, Ihre Bestellung "umzukehren", Sie müssten das selbst tun (fügen Sie eine "reverse" im Code oder in der Vorlage hinzu) –

Antwort

3

Also alles, was ich tun musste, war die firebase.database.ServerValue.TIMESTAMP das Datum hinzuzufügen. Dies fügt den Zeitstempel zu meiner Firebase-Datenbank hinzu.

text:"Save Post", 
     handler: data => { 
     this.posts.push({ 
      title: data.title, 
      content: data.content, 
      date: firebase.database.ServerValue.TIMESTAMP 
     }) 
Verwandte Themen