Как я могу получить имена детей из Firebase для просмотра списка Android? - PullRequest
0 голосов
/ 31 мая 2019

Я новичок в работе с Firebase. Как я могу получить имена детей из моей Firebase в просмотр списка?

Enter image description here

Вот моя база данных:

Enter image description here

Вот мой код, но он не работает.

public class Education extends AppCompatActivity {

    private DatabaseReference fNotesDatabase;
    ListView listView;
    ArrayList<String> arraylist = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_education);

        Firebase.setAndroidContext(this);
        fNotesDatabase = FirebaseDatabase.getInstance().getReference().child("Notes").child("education").child();
        listView = (ListView) findViewById(R.id.listview);
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arraylist);

        listView.setAdapter(arrayAdapter);

        fNotesDatabase.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Map<String, Object> map = new HashMap<String, Object>();
                arraylist.add(map.values().toString());
                arrayAdapter.notifyDataSetChanged();
            }

            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {
                Map<String, Object> map = new HashMap<String, Object>();
                arraylist.add(map.values().toString());
            }

            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
    }
}

1 Ответ

0 голосов
/ 31 мая 2019

Если вы хотите получить прямые потомки в Notes, попробуйте следующее:

ArrayAdapter adapter;
ListView listView;
ArrayList<String> arraylist = new ArrayList<>();

listView = findViewById(R.id.listview);
fNotesDatabase = FirebaseDatabase.getInstance().getReference().child("Notes");

fNotesDatabase.addSingleValueEventListener(new ValueEventListener() {

    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

        for(DataSnapshot datas: dataSnapshot.getChildren()) {
            String values = datas.getKey();
            arraylist.add(values);
            adapter = new ArrayAdapter(Education.this, android.R.layout.simple_list_item_single_choice, arraylist);
            listView.setAdapter(adapter);
        }
    }

    @Override
    public void onCancelled(FirebaseError firebaseError) {

    }
});

Сначала добавьте ссылку на дочерний элемент Notes, а затем выполните цикл внутри него и получите keys, используя getKey()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...