2016-07-01 5 views

Odpowiedz

6

Firebase nie jest przeznaczony do zamawiania na podstawie jakiegoś widocznego indeksu, ale raczej do wpisów w bazie danych when queried.

orderByChild, orderByKey lub orderByValue

Więc jeśli chcesz zmienić kolejność wartości w Firebase, należy nadać każdemu artykuł wartość „index” i nazywają orderByValue('index')


kilku linii kodu można zaktualizować bieżące elementy bazy danych do korzystania z tego indeksu:

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. Jak mógłbym przetestować każdy element w bazie danych i zmienić ich wartość według indeksu? – Smeekheff

+0

Można "aktualizować" elementy bazy danych, aby uwzględnić inne pole. –

+0

prawda, ale jak mogę iteracji poprzez każdy z elementów można podać kod? – Smeekheff