2016-08-01 9 views
1

Derzeit speichert Firebase die Daten nicht in der Reihenfolge ihrer Eingabe. Für ex - Es könnten 2 existierende Kinder sein und ein neues Kind wird eingefügt, das neue Kind geht und sitzt in der Mitte der bereits vorhandenen! Ich denke, das funktioniert alphabetisch, aber ich möchte Daten nur in der richtigen Reihenfolge speichern.Firebase: Wie erzwinge Datenbank, um Werte in der Reihenfolge zu speichern, in der sie eingegeben werden?

firebase.database().ref('someChildRef').set({ 
    //Could insert anywhere 
}); 

Ich denke, Push es in der richtigen Reihenfolge einsetzen könnte, sondern schieben erzeugt auch einen eindeutigen Schlüssel, die ich will nicht, ich will nur Satz mit Daten einzufügen und in der richtigen Reihenfolge.

+0

Nicht möglich. Verwenden Sie Abfrageregeln, um die Daten in der gewünschten Reihenfolge wiederherzustellen. – theblindprophet

+0

@theblindprophet Danke, 'orderByChild()' hat den Trick für mich gemacht. –

Antwort

0

Es ist nicht möglich, Daten in Firebase in eine gewünschte Position einzufügen. Firebase-Daten werden alphabetisch sortiert und alle neu eingefügten Daten werden entsprechend neu angeordnet.

Verwenden Sie query Regeln, um die Daten in der von Ihnen gewünschten Reihenfolge zurückzugeben.

wie:

  • orderByChild()
  • orderByKey()
  • orderByValue()
  • equalTo()

Sie sind richtig über push(), es wird immer einen eindeutigen Schlüssel erstellen und zum Ende hinzufügen , genauso wie zu einem Array w schiebend krank zum Ende hinzufügen.

0

Es klingt wie Sie für Firebase des push() Methode suchen, die auf der Basis der Zeitstempel einen eindeutigen Schlüssel erzeugt:

firebase.database().ref('someChildRef').set({ 
    //Will result at "the end" 
}); 
0
var messageListRef = new Firebase('https://samplechat.firebaseio-demo.com/message_list'); 
var newMessageRef = messageListRef.push(); 
newMessageRef.set({ 'user_id': 'fred', 'text': 'Yabba Dabba Doo!' }); 
// We've appended a new message to the message_list location. 
var path = newMessageRef.toString(); 

Versuchen Sie, die push() Methode statt Satz verwenden. Entsprechend ihrer Dokumentation:

Der eindeutige Name, der von push() generiert wird, wird mit einem vom Client generierten Zeitstempel vorangestellt, so dass die resultierende Liste chronologisch sortiert wird.

Referenz: https://www.firebase.com/docs/web/api/firebase/push.html

Verwandte Themen