Firebase sortowanie malejąco

0

Mam problem z posortowaniem malejąco wyników z firebase. Fire base umożliwia jakoś zwrócenie wyników od razu bo w dokumentacji ani słowa o "descending" nie znalazłem. na stack overflow mignęło mi się coś, że trzeba samemu odwrócić wyniki. jesli tak to jak to zrobić? dodać je do tablicy i wypisac czy jakbyście polecali?

val ref = FirebaseDatabase.getInstance().getReference("/users").orderByChild("punkty")
0

nie ma - musisz po stronie klienta (albo dodać kolumnę -punkty :))

https://github.com/firebase/FirebaseUI-Android/issues/90

0

o co chodzi, ze po stronie klienta? w tym temacie o jakiejs gotowej apce gadaja i jeszcze w javie, a nie rozumiem o co chodzi, zeby po stronie klienta to wykonac

0

mamo... Pobierasz posortowane ASC bo tylko tak się da i odwracasz kolejność już w programie (po stronie klienta)

0

Samo Firebase ci nie posortuje bo zwraca mapę z danymi. Wrzucasz to u siebie w cokowiek i sam sortujesz.

0
abrakadaber napisał(a):

mamo... Pobierasz posortowane ASC bo tylko tak się da i odwracasz kolejność już w programie (po stronie klienta)

Ze trzeba to odwrócić to chyba logiczne, ale jak to zrobić viewholderze jakoś? Do arraylist nie wrzuce, bo to przecież klasa

0

.orderByChild sortuje rosnąco, a jak to zrobić malejąco?

0

upp

0

Po prostu posortuj kolekcję. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/sorted-by-descending.html

A jeśli Firebase zwraca jakiś własny typ kolekcji to najpierw wrzuć wartości zwracane z Firebase do swojej kolekcji.

0

Do tego doszedłem, ale jak wrzucić obiekt klasy do tablicy? Pojedyncze stringi i inty z tablicy to umiem posortować, ale chciałbym np mieć obiekt User("janek", 2)
gdzie janek to imie i 2 to wynik, zeby pozniej wypisac janek ma punktow 2, bo jak zrobie osobne tablice dla imion i wynkow to ciezko bedzie to pozniej wypisac. Nakierujesz jakos bardziej?

1

Stwórz listę obiektów typu User i ją sortuj. Przykładowo.

fun main() {
  val unordered = listOf(
    Pokemon(50, "Pikachu"), 
    Pokemon(11, "Charmander"), 
    Pokemon(90, "Bulbasaur")
  )
  val ordered = unordered.sortedByDescending { it.level }
  println(ordered)
}

data class Pokemon(val level: Int, val name: String)

A jeśli koniecznie chcesz mieć tablicę zamiast listy, to utwórz tablicę, ale nie ma to znaczenia z punktu widzenia wykonywanych operacji.

0

Nie było pytania. Dzieki jeszcze raz :)

0

To teraz został tylko problem, dane z firebase do listOf wsadzić

0

Teraz się głowię czemu do arrayListOf mogę dodać jakaś wartość przez listanumerów.add(3), a do listOf nie mogę nic dodać. Ktoś doradzi?


```        var Fotki = listOf(
            Foto("22", "22"),
            Foto("32", "1312")
        )
        
        
        
        var listanumerow= arrayListOf<Int>(

            14,
            17,
            5,
            8,
            1,
            15,
            13)


    listanumerow.add(3)
0

Dobra, udało się. Teraz jakby ktoś pomógł z posortowaniem pokemonow po levelu. unordered.sortByDescending{} i nie wiem jak się dostać do sortowania.

  val unordered = listOf(
    Pokemon(50, "Pikachu"), 
    Pokemon(11, "Charmander"), 
    Pokemon(90, "Bulbasaur")
  )
0
      Pokemony.unordered.sortByDescending{ it.level }

Trochę bym lajków zgarnął za pomoc samemu sobie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1