Mesmo valor sendo menor, entra na condição

Boa tarde pessoal, estou com um problema, tentando fazer um sistema de ranking, porém mesmo o valor sendo menor que o valor atual, ele entra na Condição e Substitui.

No meu sistema ele varre todo o banco de dados e pega o valor do “Record” de cada usuário, ai depois ele compara com os valores das posições do ranking de 1 a 10, se o valor atual do Record for maior que o atual da posição, então ele entra e toma forma, caso não seja maior, ele vai para o próximo teste… Porém sempre o valor Record da última conta, sobrepõe todos os outros

for (int gid = 1; gid < MAX_CONTAS; gid++) { //--------- Compara e Seta dados se os ids forem iguais

nomeRecorde[gid] = dadosuser.get("nome");
recordRecorde[gid] = dadosuser.get("record");
nomeRecorde[idcompare] = dadosuser.get("nome");
recordRecorde[idcompare] = dadosuser.get("record");

int recordgid = recordRecorde[gid].hashCode();
String nomegid = nomeRecorde[gid].toString();
int recorduser = recordRecorde[idcompare].hashCode();
String nomeuser = nomeRecorde[idcompare].toString();

if (recorduser > ranking[0]) {
    Log.d("ranking", "VALORES Rank 01: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[0]+"Antes");
    ranking[0] = recorduser;
    nRanking[0] = nomeuser;
    txtPoss[0].setText("  1 | " + nRanking[0] + " | Recorde: R$" + ranking[0]);
    Log.d("ranking", "VALORES Rank 01: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[0]+"Depois");
} else if (recordgid > ranking[1]) {
    ranking[1] = recordgid;
    nRanking[1] = nomegid;
    txtPoss[1].setText("  2 | " + nRanking[1] + " | Recorde: R$" + ranking[1]);
    Log.d("ranking", "VALORES Rank 02: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[1]);
} else if (recordgid > ranking[2]) {
    ranking[2] = recordgid;
    nRanking[2] = nomegid;
    txtPoss[2].setText("  3 | " + nRanking[2] + " | Recorde: R$" + ranking[2]);
    Log.d("ranking", "VALORES Rank 03: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
} else if (recordgid > ranking[3]) {
    ranking[3] = recordgid;
    nRanking[3] = nomegid;
    txtPoss[3].setText("  4 | " + nRanking[3] + " | Recorde: R$" + ranking[3]);
    Log.d("ranking", "VALORES Rank 04: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
} else if (recordgid > ranking[4]) {
    ranking[4] = recordgid;
    nRanking[4] = nomegid;
    txtPoss[4].setText("  5 | " + nRanking[4] + " | Recorde: R$" + ranking[4]);
    Log.d("ranking", "VALORES Rank 05: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
} else if (recordgid > ranking[5]) {
    ranking[5] = recordgid;
    nRanking[5] = nomegid;
    txtPoss[5].setText("  6 | " + nRanking[5] + " | Recorde: R$" + ranking[5]);
    Log.d("ranking", "VALORES Rank 06: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
} else if (recordgid > ranking[6]) {
    ranking[6] = recordgid;
    nRanking[6] = nomegid;
    txtPoss[6].setText("  7 | " + nRanking[6] + " | Recorde: R$" + ranking[6]);
    Log.d("ranking", "VALORES Rank 07: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
} else if (recordgid > ranking[7]) {
    ranking[7] = recordgid;
    nRanking[7] = nomegid;
    txtPoss[7].setText("  8 | " + nRanking[7] + " | Recorde: R$" + ranking[7]);
    Log.d("ranking", "VALORES Rank 08: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
} else if (recordgid > ranking[8]) {
    ranking[8] = recordgid;
    nRanking[8] = nomegid;
    txtPoss[8].setText("  9 | " + nRanking[8] + " | Recorde: R$" + ranking[8]);
    Log.d("ranking", "VALORES Rank 09: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
} else if (recordgid > ranking[9]) {
    ranking[9] = recordgid;
    nRanking[9] = nomegid;
    txtPoss[9].setText(" 10 | " + nRanking[9] + " | Recorde: R$" + ranking[9]);
    Log.d("ranking", "VALORES Rank 10: ID: " + idcompare + "User"+recorduser+" = GID: " + gid + " Record: " + recordgid + " Rank Valor:" + ranking[2]);
}

//Log.d("ranking", "VALORES Rank 02: ID"+idcompare+" = GID "+gid+" = CID  -  > " + ranking[1] );

}

Valores das saídas que utilizei para saber e testar:

teste => {maior_nivel=1, registrado=true, nome=teste, id=1, dinheiro=18, senha=teste, email=teste, cliques=15, total_ganho=18, record=25} ANTES DO FOR
VALORES Rank 01: ID: 1User25 = GID: 1 Record: 25 Rank Valor:0Antes
VALORES Rank 01: ID: 1User25 = GID: 1 Record: 25 Rank Valor:25Depois
VALORES Rank 02: ID: 1User25 = GID: 2 Record: 25 Rank Valor:25
VALORES Rank 03: ID: 1User25 = GID: 3 Record: 25 Rank Valor:25
teste 02 => {maior_nivel=1, registrado=true, nome=teste 02, id=2, dinheiro=22, senha=teste 02, email=teste te te, cliques=11, total_ganho=22, record=50} ANTES DO FOR
VALORES Rank 01: ID: 2User50 = GID: 1 Record: 50 Rank Valor:0Antes
VALORES Rank 01: ID: 2User50 = GID: 1 Record: 50 Rank Valor:50Depois
VALORES Rank 02: ID: 2User50 = GID: 2 Record: 50 Rank Valor:50
VALORES Rank 03: ID: 2User50 = GID: 3 Record: 50 Rank Valor:50
teste03 => {maior_nivel=1, registrado=true, nome=teste03, id=3, dinheiro=42, senha=03, email=03, cliques=32, total_ganho=42, record=35} ANTES DO FOR
VALORES Rank 01: ID: 3User35 = GID: 1 Record: 35 Rank Valor:0Antes
VALORES Rank 01: ID: 3User35 = GID: 1 Record: 35 Rank Valor:35Depois
VALORES Rank 02: ID: 3User35 = GID: 2 Record: 35 Rank Valor:35
VALORES Rank 03: ID: 3User35 = GID: 3 Record: 35 Rank Valor:35

Não, apenas inicializa uma variável chamada gid como 1 e vai incrementando a mesma até que seu valor seja igual a MAX_CONTAS - 1.

Por que você não ordena o resultado da consulta ao banco pelo record e já resolve isso, sem a necessidade daquelas comparações todas?

Boa tarde, como eu poderia fazer isso no Android Studio?

Tentei pesquisar, porém tudo resulta em MySQL, e estou utilizando no momento o Database Cloud Firestore/Firebase.

Tem como realizar esse procedimento? Pois estou a dois dias já quebrando a cabeça hehe

Obrigado

Cara, você está usando java 8?
Se sim, você pode colocar os elementos obtidos na busca no Firebase em uma List e, então, usando Stream, ordenar os mesmos. Não é difícil.
Se não for, você pode fazer a ordenação manualmente mesmo.

Olá eu estou usando o Java do Android Studio, não sei bem ao certo qual versão é,
a questão agora é que não estou conseguindo aplciar o orderBy, ele não está funcionando ou eu não estou sabendo lidar com isso.

public void lerDados(View view){

    db.collection("users").whereEqualTo("registrado", true).get() // Verifica se o usuario ta cadastrado
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if(task.isSuccessful()){
                for(final QueryDocumentSnapshot document: task.getResult()) {
                    db.collection("zotinfo").document("contastapball").get() // Verifica a quantia de contas cadastradas
                    .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                        @Override
                        public void onSuccess(DocumentSnapshot documentSnapshot) {
                            if (documentSnapshot.exists()) {

                                int MAX_CONTAS, idultima;
                                Object idult;

                                Map<String, Object> idultimaconta = documentSnapshot.getData();
                                idult = idultimaconta.get("ID_ULTIMA_CONTA");
                                idultima = idult.hashCode();
                                MAX_CONTAS = idultima;


                                //Map<String, Object> dadosuser = document.getData();
                                Map<String, Object> dadosuser = document.getData();


                                //document.orderBy("record", Direction.DESCENDING).limit(10);
                                Log.d("ranking", document.getId() + " => " + document.getData() + " ANTES DO FOR"); // Mostra os dados dos usuarios no LOG

                                for (int i = 1; i < MAX_CONTAS; i++) {
                                    //document.orderBy("record", Direction.DESCENDING).limit(10).get();
                                    txtPoss[i - 1].setText(" " + (i) + " | " + document.getId() + " | Recorde: R$" + dadosuser.get("record"));
                                }
                            }
                        }
                    });
                }
            } else {
                Log.d("ranking", "Error: ", task.getException());
            }
        }
    });
}