Я хочу отсортировать данные из Firebase RealTimeDatabase.То, что я пытаюсь сделать, это когда я сначала загружаю данные, они будут начинаться с дочернего значения, которое я поместил внутри, например, «7», затем сортируют базу данных по дочернему значению «NUMBER» в возрастающей последовательности и limitToFirst (2) данные.Но журнал всегда показывает, что dataSnapshot не существует.
Вот мой код
Код для загрузки данных
private void testData(){
final ArrayList<FirebaseDatabaseGetSet> testArrayList;
testArrayList = new ArrayList<>();
databaseReference = firebaseDatabase.getReference();
databaseReference.child("VTEST").orderByChild("NUMBER").startAt("7").limitToFirst(2).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
Log.d("MOSTPOPCURRENTLASTNODE", "LOAINGMOREDATA");
for (DataSnapshot DS:dataSnapshot.getChildren()){
FirebaseDatabaseGetSet getSet = DS.getValue(FirebaseDatabaseGetSet.class);
testArrayList.add(getSet);
}
Log.d("MOSTPOPCURRENTLASTNODE", String.valueOf(testArrayList.get(0).getNUMBER()));
Log.d("MOSTPOPCURRENTLASTNODE", String.valueOf(testArrayList.get(1).getNUMBER()));
}else {
Log.d("MOSTPOPCURRENTLASTNODE", "NOLOAINGMOREDATA");
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
и вотмоя структура данных Firebase
структура данных
"VTEST" : {
"A" : {
"NUMBER" : 5
},
"B" : {
"NUMBER" : 3
},
"C" : {
"NUMBER" : 7
},
"D" : {
"NUMBER" : 10
},
"E" : {
"NUMBER" : 12
},
"F" : {
"NUMBER" : 8
}
}
Что я ожидаю от журнала, это "7" и "8", ноон всегда показывает, что dataSnapshot не существует.Может кто-нибудь сказать мне, что я делаю здесь не так, я уже пытался найти другие подобные вопросы, но не смог найти никакого решения для этого.