Chcę zmienić kolejność danych w widoku recyklingu za pomocą gestów przeciągania i upuszczania, ale nie wiem, jak ponownie zamówić dane w bazie danych bazy danych.Jak zmienić kolejność danych z bazy danych Firebase w czasie rzeczywistym?
5
A
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);
}
ok. Jak mógłbym przetestować każdy element w bazie danych i zmienić ich wartość według indeksu? – Smeekheff
Można "aktualizować" elementy bazy danych, aby uwzględnić inne pole. –
prawda, ale jak mogę iteracji poprzez każdy z elementów można podać kod? – Smeekheff