Я новичок в Firebase. Чтобы создать список в списке лидеров в моем приложении для Android, я создал базу данных на базе firebase, как показано ниже: Firebase Query and database sturcture
Где все пользовательские идентификаторы находятся под узлом «users» и под каждым узлом userUID являются пользовательскими данные. Я пытался использовать методы класса Query для доступа к 3 пользователям, имеющим самое высокое значение «totalIMPs» верхнего уровня, и показывать их «имя» в Listview (list_TotalIMP). Чтобы сделать это, я попытался следующие коды:
final ArrayAdapter<String> adapter_totalIMPs=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,android.R.id.text1);
list_TotalIMPs=(ListView)findViewById(R.id.listView_TotalIMPs);
list_TotalIMPs.setAdapter(adapter_totalIMPs);
Query query1=databaseReference.child("users").orderByChild("totalIMPs").limitToLast(3);
query1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
adapter_totalIMPs.clear();
adapter_totalIMPs.add("1");//for testing
adapter_totalIMPs.add("2");//for testing
adapter_totalIMPs.add("3");//for testing
for(DataSnapshot postsnapshot:dataSnapshot.getChildren())
{
adapter_totalIMPs.add((String)postsnapshot.child("name").getValue());
Toast.makeText(MainActivity.this,"Add in list: "+(String)postsnapshot.child("name").getValue(),Toast.LENGTH_LONG).show();
}
}
@Override public void onCancelled(DatabaseError databaseError){Toast.makeText(MainActivity.this,"Add in list: CANCELLED",Toast.LENGTH_LONG).show();}
});
Однако только тестирование Струна «1», «2» и «3» появилась в моем списке, а также, нет Toast показа. Это означает, что проблема возникает в цикле «for», и я полагаю, что это имеет какое-то отношение к структуре базы данных. Но у меня проблемы с этим. Может кто-нибудь помочь? Огромное спасибо.
(мне было интересно, если datasnapshot пуст, так что «для» цикла никогда не вошел?)
Вы включили изображение вашего дерева JSON в свой вопрос. Пожалуйста, замените это на фактический JSON как текст, который вы можете легко получить, щелкнув ссылку Экспорт JSON в [вашей консоли базы данных Firebase] (https://console.firebase.google.com/project/_/database/data/) , Наличие JSON в качестве текста делает его доступным для поиска, позволяет нам легко использовать его для тестирования с вашими фактическими данными и использовать его в нашем ответе, и в целом это просто хорошая вещь. –
Вы можете проверить этот последний вопрос, поставив точку останова на цикл 'for', а затем запустив приложение в отладчике. –