2016-07-01 13 views

Antwort

6

Firebase ist nicht dafür ausgelegt, basierend auf einem sichtbaren Index, sondern auf Einträgen in der Datenbank when queried geordnet zu werden.

orderByChild, orderByKey oder orderByValue

Also, wenn Sie die Werte in Firebase neu anordnen möchten, sollten Sie jedes Element einen 'Index' Wert geben und orderByValue('index')


ein paar Zeilen Code aufrufen kann aktuelle Datenbankelemente aktualisieren, um diesen Index zu verwenden:

int index = 0; 
mDatabase.child("data").addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) { 
     Log.d(TAG, "onChildAdded:" + dataSnapshot.getKey()); 

     // A new comment has been added, add it to the displayed list 
     Data data = dataSnapshot.getValue(Data.class); 
     index++; 
     Map<String, Object> childUpdates = new HashMap<>(); 
     childUpdates.put("/data/" + dataSnapshot.getKey()+"/index", index); 
     mDatabase.updateChildren(childUpdates); 
    } 
+0

ok. Wie würde ich in der Lage sein, durch jedes Element in der Datenbank zu gehen und ihren Wert nach Index zu ändern? – Smeekheff

+0

Sie können Ihre Datenbankelemente aktualisieren, um ein anderes Feld einzubeziehen. –

+0

true, aber wie würde ich durch jedes der Elemente iterieren können Sie einen Code zur Verfügung stellen? – Smeekheff

Verwandte Themen