Как вывести список имен зарегистрированных пользователей в Android (Firebase)?

Я новичок в Android и только что научился создавать профиль пользователей, таких как Facebook или Instagram, в настоящее время я зарегистрировал четырех пользователей с электронной почтой / паролем и в базе данных храню там электронную почту, имя, телефон. В другом упражнении я пытаюсь получить только имена зарегистрированных пользователей, таких как "Люди, которых вы знаете" в Facebook, но ничего не отображается.

private void showData(DataSnapshot dataSnapshot) {

    for (DataSnapshot ds: dataSnapshot.getChildren()) {

        UserInformation userInformation = new UserInformation();

        userInformation.setName(ds.child("users").child("name").getValue(UserInformation.class).getName());

        ArrayList<String> array = new ArrayList<>();

        array.add(userInformation.getName());

        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, array);

        mListView.setAdapter(adapter);

    }

это правильный способ получения, потому что я получаю исключение NullPointerException, UserInformation является классом модели, содержащим методы получения и установки.

fire-18b42
           users
                KWE45gijkfJDK6782IBkjas(UID)
                    email: "@example.com"
                    name: "Example"
                    phone_num: 10000000

Вот как я сохранил данные в базе данных после регистрации пользователя, теперь у меня четыре пользователя, и я хочу извлечь каждое имя в отдельном listView.

2 ответа

Решение

Для отображения этих имен, пожалуйста, используйте этот код:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersdRef = rootRef.child("users");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String name = ds.child("name").getValue(String.class);
            Log.d("TAG", name);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
usersdRef.addListenerForSingleValueEvent(eventListener);

И вывод будет в этом случае все ваши имена пользователей.

Firebase это NoSql. Вам нужно получить всех пользователей из myRef.child("users") и применить итератор, чтобы получить имена всех пользователей.

Другие вопросы по тегам